Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 01/24/14 em %

  1. meubk

    Inanimate Object

    Inanimate Object Bom venho trazer mais um script, sei que a idéia é meio boba, mais sei la, não tinha oque fazer, é o seguinte, vc pega uma pedra(configurado para o id: 8310) e dá use num objeto, espadas, armaduras, escudos, objetos de casa, qualquer o objeto que seje "moveable" ou seja objetos que vc pode arrastar, então o objetos tomara vida e sera seu summon, o atk e a vida dele, ira basear no seu level, quando o summon morre, o item volta ao normal aonde o summon morreu, é isso kkk, caso vc queira dar vida á algum objeto que não seja "moveable" tipo arvores, flores, etc, vc configura na tabela, e caso vc não quer que um item que é "moveable" ganhe vida, só configurar tbem, esta tudo comentado no script, para configurar do seu jeito, primeiramente vc deve criar o monstro. inanimate object.xml <?xml version="1.0" encoding="UTF-8"?> <monster name="Inanimate Object" nameDescription="a inanimate object" race="undead" experience="0" speed="250" manacost="0"> <health now="1" max="1"/> <look type="232" corpse="0"/> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> </attacks> <defenses armor="10" defense="20"/> </monster> tag: <monster name="Inanimate Object" file="inanimate object.xml"/> segundo passo crie outro xml, mais na pasta mod e cole o código: inanimateObject.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="inanimateObject" enabled="yes" author="Miiller" forum="XTibia.com"> <config name="inanimateObjectLib"><![CDATA[ InanimateCfg = { levelForUse = 1, -- level para usar premium = false, -- somente premium pz = false, -- pode dar vida a objetos em pz house = false, -- pode dar vida a objetos em casas maxSummon = 1, -- maximo de summons specialItems = {}, -- items que mesmo não sendo "movable" que podem ganhar vida blockItems = {}, -- items que são "movable" mas não podem ganhar vida restoreItem = true, -- depois que o summon morre, restaurar o item } function object_attack(cid, object) if not isCreature(cid) or not isCreature(object) then return true end if getCreatureTarget(cid) > 0 then if getDistanceBetween(getThingPos(getCreatureTarget(cid)), getThingPos(object)) == 1 then doTargetCombatHealth(object, getCreatureTarget(cid), COMBAT_PHYSICALDAMAGE, -(getPlayerLevel(cid)/4), -(getPlayerLevel(cid)/2), CONST_ME_BLOCKHIT) end end addEvent(object_attack, 2000, cid, object) end ]]></config> <action itemid="8310" event="script"><![CDATA[ domodlib("inanimateObjectLib") function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) < InanimateCfg.levelForUse then return doPlayerSendCancel(cid, "You need level " .. InanimateCfg.levelForUse .. " for give life to an object.") end if not isPremium(cid) and InanimateCfg.premium then return doPlayerSendCancel(cid, "You need premium for give life to an object.") end if not isItemMovable(item2.itemid) and not isInArray(InanimateCfg.specialItems, item2.itemid) or isCorpse(item2.uid) or isCreature(item2.uid) or isInArray(InanimateCfg.blockItems, item2.itemid) then return doPlayerSendCancel(cid, "This object can not gain life.") end if #getCreatureSummons(cid) >= InanimateCfg.maxSummon then return doPlayerSendCancel(cid, "You already have many summons.") end if getPlayerItemCount(cid, item2.itemid) > 0 then return doPlayerSendCancel(cid, "Please, place this object in ground.") end if getTileHouseInfo(topos) and not InanimateCfg.house then return doPlayerSendCancel(cid, "This object can not gain life in house.") end if getTilePzInfo(topos) and not InanimateCfg.house then return doPlayerSendCancel(cid, "This object can not gain life in protection zone.") end local obj = doCreateMonster("Inanimate Object", topos) doConvinceCreature(cid, obj) setCreatureMaxHealth(obj, getPlayerLevel(cid)*2) doCreatureAddHealth(obj, getPlayerLevel(cid)*2) doSetItemOutfit(obj, item2.itemid) doSendMagicEffect(getThingPos(obj), 30) if InanimateCfg.restoreItem then doCreatureSetStorage(obj, 3214, item2.itemid) doCreatureSetStorage(obj, 3215, item2.type == 0 and 1 or item2.type) registerCreatureEvent(obj, "restoreItemSummonObj") end doRemoveItem(item.uid, 1) doRemoveItem(item2.uid, item2.type == 0 and 1 or item2.type) object_attack(cid, obj) return true end ]]></action> <creaturescript type="death" name="restoreItemSummonObj" event="script"><![CDATA[ function onDeath(cid, corpse, deathList) doCreateItem(getCreatureStorage(cid, 3214), getCreatureStorage(cid, 3215), getThingPos(cid)) doSendMagicEffect(getThingPos(cid), 30) return true end ]]></creaturescript> </mod> e acabou, as configurações esta no xml da pasta mod: InanimateCfg = { levelForUse = 1, -- level para usar premium = false, -- somente premium pz = false, -- pode dar vida a objetos em pz house = false, -- pode dar vida a objetos em casas maxSummon = 1, -- maximo de summons specialItems = {}, -- items que mesmo não sendo "movable" que podem ganhar vida blockItems = {}, -- items que são "movable" mas não podem ganhar vida restoreItem = true, -- depois que o summon morre, restaurar o item } configura do seu jeito kk só pegar o item 8310, e usar nos objetos, fico mto leegal kkkk fui
    7 pontos
  2. Olá Tudo bom... Então galera, varias pessoas já me perguntaram como que eu adiciono Pokemons no PDA Slicer, ou no Meu e etc, se for PDA eu vou ensinar kkk. eo seguinte eu vi o tutorial do Yan18, o dele está certo, só que falta algumas explicações, acho que foi por isso que alguns nao conseguiram '-'. já vou falando e muito simples adicionar um pokemon kkk. vou tentar explicar passo a passo. Primeiro antes de tudo, iremos criar nosso pokémon no Monsters, vou pegar um pokémon como exemplo, tipo o Shiny magmar (eu gosto dele ele e fodão). eu vou usar o esquema do Shiny magmar: <?xml version="1.0" encoding="UTF-8"?> <monster name="Shiny Magmar" nameDescription="a Shiny magmar" race="fire" experience="1072" speed="117" manacost="0"> <health now="160" max="160"/> <look type="XXXX" head="55" body="80" legs="95" feet="113" corpse="XXXX"/> <targetchange interval="10000" 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"/> <flag hungerdelay="18"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" range="1" min="-50" max="-100"/> <attack name="Scratch" interval="2852" chance="29" range="1"/> <attack name="Fire Punch" interval="2946" chance="28" range="1"/> <attack name="Ember" interval="2758" chance="30" range="3"/> <attack name="Flamethrower" interval="3040" chance="28" range="6"/> <attack name="Fireball" interval="2993" chance="28" range="4"/> <attack name="Fire Blast" interval="4027" chance="22" range="6"/> <attack name="Magma Storm" interval="4121" chance="21" range="6"/> <attack name="Sunny Day" interval="4121" chance="21" range="3"/> </attacks> <defenses armor="0" defense="0"> </defenses> <voices interval="5000" chance="10"> <voice sentence="MAGMAR!"/> </voices> <loot> <item id="12152" chance="4000" count="1" countmax="1"/> <item id="12162" chance="5000" countmax="50"/> <item id="11447" chance="100" count="1" countmax="1"/> </loot> <script> <event name="Spawn"/> </script> </monster> salvei como .lua, coloquei no monster.xml. agora vá em configuration e vamos começar a mecher nos treco ai kkk. Primeiro de tudo, em uma das primeiras linhas vai estar assim: passivepokemons = { esse é o local aonde nos colocamos o pokemons passivos, ou seja se queremos ou não deixa-los passivos, se o nome do pokemon tipo o magmar não estiver ali ele será agressivo. agora procure por: movestable = { em baixo disso irá aparecer a renca de moves dos pokemons '-', vá no ultimo pokemon da lista que no meu caso é o: ["Elder Venusaur"] = {move1 = {name = "Body Slam", level = 56, cd = 12, dist = 1, target = 1, f = 50, t = "normal"}, move2 = {name = "Razor Leaf", level = 12, cd = 7, dist = 4, target = 1, f = 50, t = "grass"}, move3 = {name = "Vine Whip", level = 19, cd = 16, dist = 1, target = 0, f = 55, t = "grass"}, move4 = {name = "Headbutt", level = 16, cd = 12, dist = 1, target = 1, f = 55, t = "normal"}, move5 = {name = "Leech Seed", level = 16, cd = 16, dist = 3, target = 1, f = 1, t = "grass"}, move6 = {name = "Bullet Seed", level = 28, cd = 20, dist = 1, target = 0, f = 75, t = "grass"}, move7 = {name = "Solar Beam", level = 31, cd = 35, dist = 1, target = 0, f = 135, t = "grass"}, move8 = {name = "Sleep Powder", level = 20, cd = 60, dist = 1, target = 0, f = 0, t = "normal"}, move9 = {name = "Stun Spore", level = 18, cd = 35, dist = 1, target = 0, f = 0, t = "normal"}, move10 = {name = "Poison Powder", level = 17, cd = 25, dist = 1, target = 0, f = 0, t = "normal"}, move11 = {name = "Leaf Storm", level = 60, cd = 50, dist = 1, target = 0, f = 100, t = "grass"}, }, } no de vocês concerteza vai estar outro pokemon, mais mesmo assim adicionar outra /\ em baixo do ultimo pokemon, ficando assim: ["Elder Venusaur"] = {move1 = {name = "Body Slam", level = 56, cd = 12, dist = 1, target = 1, f = 50, t = "normal"}, move2 = {name = "Razor Leaf", level = 12, cd = 7, dist = 4, target = 1, f = 50, t = "grass"}, move3 = {name = "Vine Whip", level = 19, cd = 16, dist = 1, target = 0, f = 55, t = "grass"}, move4 = {name = "Headbutt", level = 16, cd = 12, dist = 1, target = 1, f = 55, t = "normal"}, move5 = {name = "Leech Seed", level = 16, cd = 16, dist = 3, target = 1, f = 1, t = "grass"}, move6 = {name = "Bullet Seed", level = 28, cd = 20, dist = 1, target = 0, f = 75, t = "grass"}, move7 = {name = "Solar Beam", level = 31, cd = 35, dist = 1, target = 0, f = 135, t = "grass"}, move8 = {name = "Sleep Powder", level = 20, cd = 60, dist = 1, target = 0, f = 0, t = "normal"}, move9 = {name = "Stun Spore", level = 18, cd = 35, dist = 1, target = 0, f = 0, t = "normal"}, move10 = {name = "Poison Powder", level = 17, cd = 25, dist = 1, target = 0, f = 0, t = "normal"}, move11 = {name = "Leaf Storm", level = 60, cd = 50, dist = 1, target = 0, f = 100, t = "grass"}, }, ["Shiny Magmar"] = {move1 = {name = "Scratch", level = 35, cd = 10, dist = 1, target = 1, f = 40, t = "normal"}, move2 = {name = "Fire Punch", level = 36, cd = 30, dist = 1, target = 1, f = 75, t = "fire"}, move3 = {name = "Ember", level = 32, cd = 10, dist = 4, target = 1, f = 40, t = "fire"}, move4 = {name = "Flamethrower", level = 37, cd = 15, dist = 1, target = 0, f = 80, t = "fire"}, move5 = {name = "Fireball", level = 38, cd = 20, dist = 4, target = 1, f = 65, t = "fire"}, move6 = {name = "Fire Blast", level = 43, cd = 40, dist = 1, target = 0, f = 120, t = "fire"}, move7 = {name = "Magma Storm", level = 46, cd = 90, dist = 1, target = 0, f = 150, t = "fire"}, move8 = {name = "Sunny Day", level = 46, cd = 60, dist = 1, target = 0, f = 0, t = "fire"}, passive1 = {name = "Lava-Electricity", level = 1, cd = 0, dist = 6, target = 0, f = 15, t = "fire"}, }, } em baixo do movestable tem. os fly, ride, e surf, o meu está assim: ["Moltres"] = {229, 2300}, -- moltres ["Articuno"] = {230, 2100}, -- artic ["Zapdos"] = {224, 2600}, -- zapdos ["Mew"] = {232, 2200}, -- 1000 ["Mewtwo"] = {233, 2200},-- two ["Dragonite"] = {221, 1300},-- nite ["Pidgeot"] = {222, 900}, -- geot ["Fearow"] = {226, 800}, -- fearow ["Aerodactyl"] = {227, 1100}, -- aero ["Charizard"] = {216, 1000}, -- chari ["Porygon"] = {316, 600}, -- porygon ["Shiny Dragonite"] = {1020, 1300},-- Shiny nite ["Shiny Pidgeot"] = {996, 900}, -- Shiny geot ["Shiny Fearow"] = {997, 800}, -- Shiny fearow --alterado v1.5 ["Shiny Charizard"] = {295, 1000}, -- Shiny chari ["Porygon2"] = {648, 890}, -- 2 ["Skarmory"] = {649, 1000}, -- skarmory ["Crobat"] = {652, 1190}, -- crobat ["Dragonair"] = {1112, 1150}, ["Shiny Dragonair"] = {1113, 1400}, ["Noctowl"] = {994, 1000}, ["Farfetch'd"] = {1120, 1000}, --alterado v1.8 \/ ["Shiny Farfetch'd"] = {1121, 1000}, ["Gengar"] = {1123, 1000}, ["Shiny Gengar"] = {1124, 1000}, ["Heracross"] = {1125, 1000}, ["Xatu"] = {1122, 1000}, ["Togekiss"] = {1231, 1000}, ["Staraptor"] = {1234, 1000}, ["Drifblim"] = {1187, 1000}, ["Honchkrow"] = {1203, 1000}, ["Salamence"] = {1415, 1000}, ["Tropius"] = {1398, 1000}, ["Swellow"] = {1397, 1000}, ["Pelipper"] = {1394, 1000}, ["Flygon"] = {1391, 1000}, ["Altaria"] = {1389, 1000}, } rides = { ["Tauros"] = {128, 580}, -- tauros ["Ninetales"] = {129, 800}, -- kyuubi ["Rapidash"] = {130, 800}, -- rapid ["Ponyta"] = {131, 410}, -- ponyta ["Rhyhorn"] = {132, 400}, -- rhyhorn ["Arcanine"] = {12, 900}, -- arcan ["Onix"] = {126, 450}, -- onix ["Venusaur"] = {134, 390}, -- venu ["Dodrio"] = {133, 750}, -- dodrio ["Doduo"] = {135, 420}, -- doduo ["Shiny Tauros"] = {1024, 580}, -- tauros ["Shiny Arcanine"] = {1003, 900}, -- arcan ["Shiny Onix"] = {126, 450}, -- onix --alterado v1.5 ["Shiny Venusaur"] = {1040, 390}, -- venu ["Shiny Onix"] = {293, 480}, -- cristal onix ["Steelix"] = {646, 750}, -- steelix ["Meganium"] = {685, 720}, -- meganium ["Bayleef"] = {686, 555}, -- bayleef ["Stantler"] = {687, 595}, -- stantler ["Houndoom"] = {647, 820}, -- houndoom ["Piloswine"] = {689, 450}, -- piloswine ["Mareep"] = {688, 400}, -- marip ["Shiny Ninetales"] = {1136, 1000}, -- Shiny Ninetales --alterado v1.9 \/ ["Shiny Dodrio"] = {1145, 750}, -- shiny dodrio ["Luxray"] = {1228, 1000}, ["Rampardos"] = {1180, 1000}, ["Bastiodon"] = {1255, 1000}, ["Torkoal"] = {1404, 1000}, ["Mightyena"] = {1393, 1000}, ["Camerupt"] = {1390, 1000}, ["Shelgon"] = {1387, 1000}, ["Metagross"] = {1386, 1000}, ["Manectric"] = {1385, 1000}, ["Aggron"] = {1381, 1000}, ["Absol"] = {1380, 1000}, } surfs = { ["Poliwag"] = {lookType=278, speed = 320}, ["Poliwhirl"] = {lookType=137, speed = 480}, ["Seaking"] = {lookType=269, speed = 520}, ["Dewgong"] = {lookType=183, speed = 700}, ["Blastoise"] = {lookType=184, speed = 850}, ["Tentacruel"] = {lookType=185, speed = 750}, ["Lapras"] = {lookType=186, speed = 960}, ["Gyarados"] = {lookType=187, speed = 1050}, ["Omastar"] = {lookType=188, speed = 680}, ["Kabutops"] = {lookType=189, speed = 840}, ["Poliwrath"] = {lookType=190, speed = 680}, ["Vaporeon"] = {lookType=191, speed = 800}, ["Staryu"] = {lookType=266, speed = 385}, ["Starmie"] = {lookType=267, speed = 685}, ["Goldeen"] = {lookType=268, speed = 355}, ["Seadra"] = {lookType=270, speed = 655}, ["Golduck"] = {lookType=271, speed = 760}, ["Squirtle"] = {lookType=273, speed = 365}, ["Wartortle"] = {lookType=275, speed = 605}, ["Tentacool"] = {lookType=277, speed = 340}, ["Snorlax"] = {lookType=300, speed = 500}, ----------------Shiny---------------------- ["Shiny Blastoise"] = {lookType=658, speed = 935}, ["Shiny Tentacruel"] = {lookType=1014, speed = 825}, ["Shiny Gyarados"] = {lookType=1030, speed = 1155}, ["Shiny Vaporeon"] = {lookType=1032, speed = 880}, --alterado v1.6 ["Shiny Seadra"] = {lookType=1025, speed = 720.5}, ["Shiny Tentacool"] = {lookType=1013, speed = 374}, ["Shiny Snorlax"] = {lookType=1035, speed = 550}, ----------------Johto---------------------- ["Mantine"] = {lookType=636, speed = 820}, ["Totodile"] = {lookType=637, speed = 360}, ["Croconow"] = {lookType=638, speed = 590}, ["Feraligatr"] = {lookType=645, speed = 900}, ["Marill"] = {lookType=639, speed = 340}, ["Azumarill"] = {lookType=642, speed = 680}, ["Quagsire"] = {lookType=643, speed = 740}, ["Kingdra"] = {lookType=644, speed = 1020}, ["Octillery"] = {lookType=641, speed = 600}, ["Wooper"] = {lookType=640, speed = 315}, --------------- Novos -------------------- ["Buizel"] = {lookType=1160, speed = 315}, ["Floatzel"] = {lookType=1158, speed = 350}, ["Gastrodon east"] = {lookType=1222, speed = 200}, ["Gastrodon"] = {lookType=1221, speed = 200}, ["Finneon"] = {lookType=1193, speed = 120}, ["Lumineon"] = {lookType=1192, speed = 120}, -----------hoen------------------------- ["Walrein"] = {lookType=1406, speed = 120}, ["Wingull"] = {lookType=1400, speed = 120}, ["Wailmer"] = {lookType=1399, speed = 120}, ["Swampert"] = {lookType=1395, speed = 120}, ["Ludicolo"] = {lookType=1392, speed = 120}, ["Sharpedo"] = {lookType=1388, speed = 120}, ["Gorebys"] = {lookType=1383, speed = 120}, ["Huntail"] = {lookType=1382, speed = 120}, ["Relicanth"] = {lookType=1402, speed = 120}, ["Linoone"] = {lookType=1379, speed = 120}, ["Spheal"] = {lookType=1378, speed = 120}, ["Mudkip"] = {lookType=1377, speed = 120}, ["Whiscash"] = {lookType=1376, speed = 120}, ["Marshtomp"] = {lookType=1375, speed = 120}, ["Luvdisc"] = {lookType=1374, speed = 120}, ["Lombre"] = {lookType=1373, speed = 120}, ["Barboach"] = {lookType=1372, speed = 120}, ["Finneon"] = {lookType=1193, speed = 120}, ["Piplup"] = {lookType=1211, speed = 350}, ["Prinplup"] = {lookType=1210, speed = 400}, ["Empoleon"] = {lookType=1213, speed = 550}, é o seguinte, para você adicionar um fly para seu pokemon você terá que pegar o numero de looktype dele, um exemplo: 1000, entao você subtrai por 351: 1000-351=649.. em todo os fly surf, e ride, tem que fazer isso se nao nao irá aparecer o looktype correto. Continuando.. agorá procure por: pokes = { em baixo disso irá aparecer isso: ["Bulbasaur"] = {offense = 4.9, defense = 4.9, specialattack = 6.5, vitality = 4.5, agility = 106, exp = 64, level = 20, wildLvl = 20, type = "grass", type2 = "poison"}, Offense: é o quanto ele irá bater corpo a corpo. Defense: é o tanto de defesa que ele irá ter. SpeciealAttack: o tanto que ele irá hitar com seus poderes ou M1.. Etc. Vitality: o tanto de life que ele terá. Exp: o quanto de exp que ele dará ao morrer (algo do tipo kk) Level: o level que precisa-ra ter para usa-lo. Wildlevel: o level dele quando ele for selvagem: Type 1 e 2: o tipo do elemento dele. OBS: Lembrando que isso e por cada level que seu character upar. e nao o quanto ele vai ter para sempre. entao quer dizer que quanto mais você upar mais forte seu pokemon fica, e com mais life tambem. agorá va no final dessa tabela e adicione mais uma dessas: ["Shiny magmar"] = {offense = 15.9, defense = 19.9, specialattack = 16.5, vitality = 22.5, agility = 351, exp = 602, level = 150, wildLvl = 150, type = "fire", type2 = "no type"}, Nunca tirem o Type2, se tirarem irá dar erro. entao deixem "no type". agora em: fotos = { em baixo vai aparecer: ["Bulbasaur"] = 11989, entao e so ir no final dessa tabelinha, e adicionar mais um: ["Shiny Magmar"] = ID DO PORTFOIL, agora procure por: pokecatches = { em baixo disso: ["Bulbasaur"] = {chance = 500, corpse = 5969}, agora so ir no final da tabela e adicionar mais um: ["Shiny Magmar"] = {chance = CHANCE DE CATH, corpse = ID DO CORPSE}, Lembrando quanto maior o numero do cauth, mais dificil ele ficar de ser capiturado. entao se deixar 100 e muito facil, se deixar 1500, já fica dificil. continuando, procure por: newpokedes - { em baixo disso aparece: ["Bulbasaur"] = {gender = 875, level = 18, storage = 1001, stoCatch = 666001}, no final adicionar mais um, lembrando que no storage e stocath, os numeros devem continuar apartir do ultimo adicionado na tabela que no meu caso eo ["Heatran"] = {gender = 500, level = 100, storage = 11757, stoCatch = 666635}, entao pegamos uma copia do magmar e modificamos ela: ["Magmar"] = {gender = 750, level = 150, storage = 11758, stoCatch = 666636}, .. agora procuremos: oldpokedex = { em baixo: {"Bulbasaur", 18, 1001}, bem já adicionado a portfoil do pokemon desejado e so ir no final da tabela e colocar um igual, ficando assim: {"Shiny magmar", 150, 11737}, lembrando que o numero 11737 ea continuação da ultima storage que estava na tabela que seria a 11736, do heatran. agora em: poevo = { em baixo disso tem: ["Bulbasaur"] = {level = 40, evolution = "Ivysaur", count = 1, stoneid = 11441, stoneid2 = 0}, Level: o level que precisa estar para evoluir seu pokemon. Evolution: para qual pokemon ele irá evoluir Count: quantas stones precisa para evoluir Stoneid: o id da stone que precisa ter para evoluilo, se quiser deixar 1 stone so, deixe o stoneid2, com um 0. vamos até o final da tabela e adicionamos mais uma, bem ja que o shiny magmar nao tem evolução eu irei criar um shiny magmortar kkk: ["Shiny Magmar"] = {level = 200, evolution = "Shiny magmortar", count = 3, stoneid = XXXXX, stoneid2 = XXXXX}, Lembrete: agora procure por: specialabilities = { e em baixo: ["rock smash"] = {"Shiny Rhydon", "Nidoking", "Nidoqueen", "Dragonite", "Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Poliwrath", "Hitmonlee", "Hitmonchan", "Aerodactyl", "Blastoise","Shiny Nidoking", "Shiny Dragonite", "Shiny Golem", "Shiny Onix", "Shiny Cubone", "Shiny Marowak", "Shiny Snorlax", "Shiny Hitmonlee", "Shiny Hitmontop", "Shiny Hitmonchan", "Shiny Blastoise", "Typhlosion", "Feraligatr", "Furret", "Ledian", "Ampharos", "Politoed", "Quagsire", "Forretress", "Steelix", "Snubbull", "Granbull", "Sudowoodo", "Gligar", "Scizor", "Heracross", "Sneasel", "Ursaring", "Teddiursa", "Slugma", "Magcargo", "Piloswine", "Swinub", "Corsola", "Phanpy", "Donphan", "Tyrogue", "Hitmontop", "Miltank", "Blissey", "Tyranitar", "Pupitar", "Magmortar", "Torterra", "Monferno", "Gible", "Gabite", "Garchomp", "Electivire", "Mamoswine", "Ambipom", "Cranidos"}, ["cut"] = {"Kabutops", "Raticate", "Bulbasaur", "Ivysaur", "Venusaur", "Charmeleon", "Charizard", "Sandshrew", "Sandslash", "Gloom", "Vileplume", "Paras", "Parasect", "Meowth", "Persian", "Bellsprout", "Weepinbell", "Victreebel", "Farfetch'd", "Krabby", "Kingler", "Exeggutor", "Cubone", "Marowak", "Tangela", "Scyther", "Pinsir", "Shiny Raticate", "Shiny Venusaur", "Shiny Charizard", "Shiny Vileplume", "Shiny Paras", "Shiny Parasect", "Shiny Farfetch'd", "Shiny Krabby", "Shiny Kingler", "Shiny Cubone", "Shiny Marowak", "Shiny Tangela", "Shiny Scyther", "Shiny Pinsir", "Chikorita", "Bayleef", "Meganium", "Croconow", "Feraligatr", "Furret", "Bellossom", "Hoppip", "Skiploom", "Jumpluff", "Sunkern", "Sunflora", "Scizor", "Heracross", "Sneasel", "Teddiursa", "Ursaring", "Gligar", "Skarmory", "Turtwig", "Grotle", "Torterra", "Monferno", "Gabite", "Kricketot", "Kricketune", "Mothim"}, ["light"] = {"Shiny Espeon", "Shiny Electrode", "Abra", "Kadabra", "Alakazam", "Magnemite", "Magneton", "Drowzee", "Hypno", "Voltorb", "Electrode", "Mrmime", "Electabuzz", "Jolteon", "Porygon", "Pikachu", "Raichu", "Shiny Abra", "Shiny Alakazam", "Shiny Hypno", "Shiny Voltorb", "Shiny Electrode", "Shiny Electabuzz", "Shiny Jolteon", "Shiny Raichu", "Chinchou", "Lanturn", "Pichu", "Natu", "Xatu", "Mareep", "Flaaffy", "Ampharos", "Espeon", "Porygon2", "Elekid", "Electivire", "Shinx", "Luxio", "Luxray", "Pachirisu"}, ["digholes"] = {"468", "481", "483"}, ["ghostwalk"] = {"Gastly", "Haunter", "Gengar", "Shiny Gengar", "Misdreavus", "Darkrai", "Mismagius", "Drifblim"}, ["dig"] = {"Shiny Dodrio", "Shiny Umbreon", "Shiny Espeon", "Shiny Ninetales", "Shiny Rhydon", "Raticate", "Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Eevee", "Flareon", "Jolteon", "Vaporeon", "Vulpix", "Ninetales", "Nidorina", "Nidoqueen", "Nidorino", "Nidoking", "Persian", "Arcanine", "Shiny Raticate", "Shiny Golem" , "Shiny Onix", "Shiny Cubone", "Shiny Marowak", "Shiny Snorlax", "Shiny Flareon", "Shiny Jolteon", "Shiny Vaporeon", "Shiny Nidoking", "Shiny Arcanine", "Typhlosion", "Feraligatr", "Furret", "Espeon", "Umbreon", "Ledian", "Sudowoodo", "Politoed", "Quagsire", "Gligar", "Steelix", "Snubbull", "Granbull", "Heracross", "Dunsparce", "Sneasel", "Teddiursa", "Ursaring", "Piloswine", "Hitmontop", "Larvitar", "Pupitar", "Tyranitar", "Chinchar", "Gible", "Riolu", "Cranidos"}, ["blink"] = {"Shiny Abra", "Shiny Espeon", "Shiny Mr. Mime", "Jynx", "Shiny Jynx", "Hypno", "Shiny Hypno", "Slowking", "Natu", "Xatu", "Espeon", "Mew", "Mewtwo", "Abra", "Kadabra", "Alakazam", "Porygon", "Shiny Abra", "Shiny Alakazam", "Porygon2", "Mr. Mime", "Bronzor"}, ["teleport"] = {"Shiny Mr. Mime", 'Mew', 'Mewtwo', 'Abra', 'Kadabra', 'Alakazam', 'Drowzee', 'Hypno', 'Mr. Mime', 'Porygon', 'Shiny Abra', 'Shiny Alakazam', 'Shiny Hypno', 'Porygon2'}, ["fly"] = {"Xatu", "Heracross", "Farfetch'd", "Shiny Farfetch'd", "Noctowl", "Dragonair", "Shiny Dragonair", "Porygon", "Aerodactyl", "Dragonite", "Charizard", "Pidgeot", "Fearow", "Zapdos", "Moltres", "Articuno", "Mew", "Mewtwo", "Shiny Dragonite", "Shiny Charizard", "Shiny Pidgeot", "Shiny Fearow", "Porygon2", "Skarmory", "Crobat", "Togekiss", "Staraptor", "Drifblim", "Honchkrow", "Salamence", "Tropius", "Flygon", "Altaria", "Pelipper", "Swellow"}, ["ride"] = {"Shiny Dodrio", "Shiny Ninetales", "Shiny Onix", "Venusaur", "Ninetales", "Arcanine", "Ponyta", "Rapidash", "Doduo", "Dodrio", "Onix", "Rhyhorn", "Tauros", "Shiny Venusaur", "Shiny Arcanine", "Steelix", "Houndoom", "Meganium", "Bayleef", "Stantler", "Mareep", "Piloswine", "Luxray", "Rampardos", "Bastiodon", "Torkoal", "Shelgon", "Metagross", "Manectric", "Mightyena", "Camerupt", "Absol"}, ["surf"] = {"Poliwag", "Poliwhirl", "Seaking", "Dewgong", "Blastoise", "Tentacruel", "Lapras", "Gyarados", "Omastar", "Kabutops", "Vaporeon", "Staryu", "Starmie", "Goldeen", "Seadra", "Golduck", "Squirtle", "Wartortle", "Tentacool", "Snorlax", "Poliwrath", "Shiny Blastoise", "Shiny Tentacruel", "Shiny Gyarados", "Shiny Vaporeon", "Shiny Seadra", "Shiny Tentacool", "Shiny Snorlax", "Mantine", "Totodile", "Croconow", "Feraligatr", "Marill", "Azumarill", "Quagsire", "Wooper", "Octillery", "Kingdra", "Piplup", "Prinplup", "Empoleon", "Buizel", "Floatzel", "Gastrodon east", "Gastrodon", "Finneon", "Lumineon", "Wailmer", "Ludicolo", "Mudkip", "Luvdisc", "Lombre", "Sharpedo", "Swampert", "Wingull", "Walrein", "Gorebys", "Huntail", "Linoone", "Spheal", "Barboach", "Marshtomp", "Whiscash"}, ["foresight"] = {"Machamp", "Shiny Hitmonchan", "Shiny Hitmonlee", "Shiny Hitmontop", "Hitmontop", "Hitmonlee", "Hitmonchan", "Chinchar"}, ["counter"] = {"Machamp", "Machoke", "Hitmonchan", "Hitmonlee", "Magmar", "Electabuzz", "Scyther", "Snorlax", "Kangaskhan", "Arcanine", "Shiny Arcanine", "Shiny Snorlax", "Shiny Scyther", "Shiny Hitmonchan", "Shiny Hitmonlee", "Shiny Electabuzz", "Hitmontop", "Shiny Hitmontop", "Magmortar", "Gible", "Gabite"}, ["levitate"] = {"Gengar", "Haunter", "Gastly", "Misdreavus", "Weezing", "Koffing", "Unown", "Shiny Gengar"}, ["evasion"] = {"Scyther", "Scizor", "Hitmonlee", "Hitmonchan", "Hitmontop", "Tyrogue", "Shiny Scyther", "Shiny Hitmonchan", "Shiny Hitmonlee", "Shiny Hitmontop", "Ledian", "Ledyba", "Sneasel"}, ["control mind"] = {'Haunter', 'Gengar', 'Tentacruel', 'Alakazam', 'Shiny Tentacruel', 'Shiny Gengar', 'Shiny Alakazam', 'Slowking'}, ["transform"] = {"Ditto"}, ["levitate_fly"] = {"Gengar", "Shiny Gengar"}, se quiser que o pokemon tenha alguma dessas abilidades e so adicionar o nome dele ali, e cuidado para nao errar nos sinais kkk. Bem galera e isso, espero ter explicado bem kkk. eu usei meu servidor como base desse tutorial, entao seis vao estranhar os pokemons da 3 e 4 geração kk. abraçs e até. deixe seu comentario do que achou. Creditos: Eu (Por criar o topico) Slicer (Pelo servidor que eu peguei as informações) Brun123 (Por criar os sistemas dessa tabela, pelo menos eu acho que foi ele kk nao sei).
    5 pontos
  3. Tonynh

    Fire Sword (old)

    Encontrei um rabisco de uma Fire Sword que fiz no início do ano passado (acho).. auhauh Estou vendo se encontro um Royal Helmet que fiz também.. se eu encontrar, posto por aqui =)
    4 pontos
  4. caotic

    doCreateMonsterNick(monster, nick, pos)

    Tudo bem galera xtibiana? Resolvi trazer a vocês um sistema de nick que permite mudar o nome do monstro in-game. A função e simples de se usar e não tem nenhum tipo de limitação ela foi desenvolvida na versão 8.6 com a tfs 0.3.6. Lets go: Vá em monster.h e procure isto: typedef std::list<Creature*> CreatureList; class Monster : public Creature { private: Monster(MonsterType* _mType); public: #ifdef __ENABLE_SERVER_DIAGNOSTIC__ static uint32_t monsterCount; #endif virtual ~Monster(); E coloque este codigo em baixo: std::string nick,realname; Continue em monster.h e procure: static Monster* createMonster(const std::string& name); E coloque embaixo: static Monster* createMonsterNick(const std::string& name, std::string nick); Procure também: virtual const std::string& getName() const {return mType->name;} E substitua por isto: virtual const std::string& getName() const {return nick;} Depois vá em monster.cpp e procure: Monster* Monster::createMonster(const std::string& name) { MonsterType* mType = g_monsters.getMonsterType(name); if(!mType) return NULL; return createMonster(mType); } Substitua por: Monster* Monster::createMonster(const std::string& name) { MonsterType* mType = g_monsters.getMonsterType(name); if(!mType) return NULL; mType->name = name; return createMonster(mType); } Monster* Monster::createMonsterNick(const std::string& name, std::string nick) { MonsterType* mType = g_monsters.getMonsterType(name); if(!mType) return NULL; if (!(nick == "")) { mType->name = nick; } return createMonster(mType); } Continuando em monster.cpp procure: currentOutfit = mType->outfit; Adicionar embaixo: nick = mType->name; Vá em luascript.h e procure isto static int32_t luaDoCreateNpc(lua_State* L); Embaixo coloque: static int32_t luaDoCreateMonsterNick(lua_State* L); static int32_t luaGetCreatureNickRealName(lua_State* L); Em luascript.cpp procure: //doPlayerSetIdleTime(cid, amount) lua_register(m_luaState, "doPlayerSetIdleTime", LuaScriptInterface::luaDoPlayerSetIdleTime); Coloque embaixo: //doCreateMonster(monster, nick, pos) lua_register(m_luaState, "doCreateMonsterNick", LuaScriptInterface::luaDoCreateMonsterNick); Continue em luascript.cpp e procure isto: int32_t LuaScriptInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid) ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) lua_pushstring(L, creature->getName().c_str()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } Coloque isto: int32_t LuaScriptInterface::luaGetCreatureNickRealName(lua_State* L) { //getCreatureNickRealName(cid) ScriptEnviroment* env = getEnv(); if(Monster* monster = env->getCreatureByUID(popNumber(L))->getMonster()) lua_pushstring(L, monster->realname.c_str()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaScriptInterface::luaDoCreateMonsterNick(lua_State* L) { //doCreateMonsterNick(monster, nick, pos) ScriptEnviroment* env = getEnv(); PositionEx pos; popPosition(L, pos); std::string nick = popString(L); const std::string name = popString(L).c_str(); Monster* monster = Monster::createMonsterNick(name, nick); if(!monster) { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); return 1; } if(!g_game.placeCreature(monster, pos)) { delete monster; errorEx("Cannot create monster: " + name); lua_pushboolean(L, false); return 1; } monster->realname = name; lua_pushnumber(L, env->addThing((Thing*)monster)); return 1; } -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Exemplo de uso: function onSay(cid, words, param, channel) local t = string.explode(param, ",") doCreateMonsterNick(t[1], t[2], getThingPos(cid)) return true end
    3 pontos
  5. Oneshot

    A Fábrica

    A Fábrica Introdução Já foram criadas iniciativas parecidas aqui no fórum, tópicos onde membros dariam sugestões de códigos a serem desenvolvidos, ideias de sistemas, e etcétera. Mas estes tópicos não deram certo, membros que davam ideias e sugestões, se viam o direito de ficar cobrando a todo momento que sua ideia fosse desenvolvida e eu não quero isso aqui. Este será um tópico para troca de mercadorias, isso mesmo, eu vou vender códigos de scripts ou sources, e o pagamento será a sua criatividade, uma troca mútua, você me dá a sua ideia, e eu retorno com código de alta qualidade. Decidi criar esse tópico na seção Outros e não na seção de Pedidos, para que seus conceitos não sejam assimilados, aqui é um tópico onde você dá sua ideia e aguarda ela ser desenvolvida, calado, eu não quero conversas paralelas, e cobrança, já que tudo aqui se trata de colaboração, trabalho voluntário e um objetivo, enriquecer a área Scripting, e também a área Programação. Regras - Você pode sugerir qualquer tipo de script aqui, mas tenha bom-senso, vir neste tópico pedir um NPC que troca um item pelo outro, uma alavanca que faz uma pedra sumir, é no mínimo pedir para ser xingado. Por isso, utilize o Pesquisar, e, se você tem preguiça de fazer isso, nada te impede de criar seu tópico com seu pedido simples e repetitivo na seção Pedidos e Dúvidas. - Não faça flood aqui, faça seu pedido, se ele for aceito, ele será desenvolvido e disponibilizado em seu respectivo tópico na área de Scripting ou Programação. - Fez seu pedido e está impaciente? Não venha dar quote no seu pedido e ficar cobrando o desenvolvimento dele, isso só vai me fazer ter raiva de você e recusar qualquer coisa vinda de você. - O mesmo vale para pedidos complexos, você tem que entender que leva tempo, e eu me reservo o direito de não querer atender certos pedidos. E, lembrando, nada te impede de criar um tópico na seção de Pedidos e Dúvidas. - Para fim de organização, apenas usuários com mais de 50 posts e 30 dias de conta poderão usufruir d'A Fábrica. - Detalhe seu pedido, não adianta chegar aqui com algo subjetivo do tipo "Dãã eu quero uma alavanca" Pedidos Spread Loot CONCLUÍDO Bounty Hunter Em planejamento Dynamic Movements Em análise Item Quality System Em análise Title System Em análise
    3 pontos
  6. beto06

    [Show Off] Beto

    Podia ter falado 'tudo' huehue mas, por enquanto, tirei a caixa que não ficou bem posicionada mesmo.. Pelo RME as grades e os musgos ficam meio bugados também.. Mas acho que vou manter assim, não quero perder tempo ;x Valeu pelos comentários.
    3 pontos
  7. Nolis

    [10.31] Elfo Ferreiro V1.0

    Versão utilizada: 10.31 (tfs 1.0) Descrição: Você leva uma determinada espada até o npc, fala com ele, ele vai pegar essa espada e ficar com ela por um certo tempo (3min), claro, você irá pagar uma quantia. Ao retornar, sua espada estará melhorada (no caso dos ids utilizados o npc irá trocar o item). Se houver algum bug, reporte que arrumaremos. Créditos: Jamison, Daaniel. Conteúdo Oficial: Outro Fórum Download do Mapa Utilizado (créditos: Daaniel) ---------- • ---------- Diálogo: 22:21 Daniel [250]: hi 22:21 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 22:21 Daniel [250]: transform 22:21 Blacksmith Elf: From time to time fate smiles upon those who take great risks and have strong dreams! If you have money, we can try to transform your umbral swords, axes, clubs, bows, crossbows or spellbooks. 22:21 Daniel [250]: club 22:21 Blacksmith Elf: One handed or two handed? 22:21 Daniel [250]: one handed 22:21 Blacksmith Elf: Do you want to spend your money to transform your crude umbral mace, yes or no? 22:21 Daniel [250]: yes 22:21 Blacksmith Elf: Great! Alright, I need a while to finish this club for you. Come ask me later. 22:22 Daniel [250]: hi 22:22 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 22:22 Daniel [250]: transform 22:22 Blacksmith Elf: Have you left anything here to transform ? 22:22 Daniel [250]: yes 22:22 Blacksmith Elf: You must wait until : 22:24:49. 22:25 Daniel [250]: hi 22:25 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 22:25 Daniel [250]: transform 22:25 Blacksmith Elf: Have you left anything here to transform ? 22:25 Daniel [250]: yes 22:25 Blacksmith Elf: Here you have it. ---------- • ---------- Fotos ---------- • ---------- Script: data/npc/Blacksmith Elf.lua data/npc/scripts/blacksmith_elf.lua
    2 pontos
  8. RastaLegion

    Tutorial Nature

    olá xtibianos venho aqui trazer o meu primeiro tutorial , e quero trazer outros se este for de agrado da maioria. 1 Comece colocando o ground de grama então comece a formar um caminho pro player poder andar com o ground de terra ou outro que tenha vontade ,depois coloque alguns grounds diferentes como o da grama escura e o de pedra visualizando como vai ficar depois de colocar as bordas. 2 Agora coloque as bordas, randomizando-as para que fique bonito e não apenas com uma borda porque na minha opinião fica feio e parecido com auto border. 3 Agora coloque as arvores e arbustos ,não coloque arvores demais pois ficará difícil para o player andar, recomendo que coloque de 3~5 arvores pequenas (arbusto e pinheiro pequeno) para cada arvore grande. 4 Agora coloque os tufos de grama ,cogumelos ,flores ,pedrinhas ,e outros detalhes, recomendo que veja o tutorial que deixarei no final do tópico para posicionar os tufos de grama. 5 Agora Coloque oque for de seu agrado ,eu por exemplo gosto de colocar plantas aquáticas ,uma arvore gigante para que a natureza não fique repetitiva ,e algumas arvores secas , também coloquei alguns arbustos com blueberry e morangos pois vejo muita gente usando apenas arbustos sem nada e acho legal ter algumas arvores com food durante a floresta , fica mais interessante. Todos os itens deste tutorial poderá ser encontrado em terrain palette e nature, com exceção das arvores de id 8313 e 8314 que podem ser encontrado em others e os morangos que podem ser encontrado em foods com o id 2680. obrigado aos mappings que me ajudaram dando opiniões link do tutorial de posicionar tufos de grama : http://www.xtibia.com/forum/topic/221802-posicionando-tufos-de-grama/
    2 pontos
  9. Tony

    30 anos de Apple!

    Acho que isso também se refere ao mundo do designer crendo que a maioria dos designer de hoje em dia usam a marca "Apple". O que mudou no mundo nos últimos 30 anos? Muita coisa. E, certamente, muitas destas mudanças estão acompanhadas de perto pelo espírito de inovação, do foco no design e na crença de que fazer diferente pode levar a caminhos melhores. Uma empresa está intimamente ligada a isso: a Apple comemora 30 anos do Macintosh, um artefato que mudou a história da computação pessoal. Destes 30 anos, eu trabalho em um computador da Apple há 20. Com minha agência no Recife, fiz as campanhas brasileiras do lançamento do iMac no final dos anos 1990. Sim, sou fanboy da marca. Sim, escrevo este post e muitos dos meus trabalhos em um Mac. E sim, estes caras abaixo, no vídeo, também. --------------------------------------------------------------------------------------------------------------- A Apple lançou site comemorativo, com timeline sobre cada modelo lançado desde 1984, depoimentos de experts / celebridades (como Moby, Hans Zimmer, David Carson, Philip Jackson, etc). Nele, você pode participar contando para o mundo qual foi seu primeiro Macintosh e dividir histórias sobre o tema. Se preferir, compartilhe aqui conosco também suas histórias com a marca. Como nunca é demais, clique aqui e relembre o filme de lançamento do Macintosh “1984″, veiculado apenas uma vez no intervalo do Super Bowl daquele ano. WWW.ABRIL.COM.BR
    2 pontos
  10. Shoguns

    Pedido

    Oque fica estranho e esses Bang de colocar Luz na foto man, fica muito chegay
    2 pontos
  11. masdead

    [Encerrado] Ot Item Editor

    http://www.xtibia.com/forum/topic/140336-1021-otitemeditor-by-comedinha/ Use a barra de pesquisa ela é útil não é só enfeite não
    2 pontos
  12. Olá comunidade, O meu nome é Lucas Melo, conhecido como LuquitossML, eu recebo muitas mensagens aqui no fórum de membros que gostariam de auxilio para a criação/edição de uma sprite e outros com interesse de aprender a spritear, como eu não tenho tempo para ajudar todo mundo, decidi fazer um tutorial, neste tutorial eu vou compilar tudo aquilo que você precisa saber para começar a arte da perspectiva 45°. Aqui nós vamos aprender passo a passo para a criação de uma sprite. Tutorial Básico sobre quase tudo aquilo que você precisa saber. Introdução: Definição Geral.No Tibia, assim como todos os jogos, os elementos gráficos são chamados de Sprites. Para criar estes sprites, utilizamos uma técnica de design gráfico conhecida pelo nome de Pixel Art. Pouca gente conhece essa arte, que surgiu com os primeiros videogames. Pixel art significa fazer Arte através da utilização de Pixels. Pixel são os pequenos quadrados que compõe as imagens gráficas de qualquer sistema televisual. A organização correta de pixels pode gerar formas que podem ser reconhecidas como animais, objetivos, fotografias, plantas, animações variadas, etc. Técnicas de pixel artPixel art conta com algumas técnicas diferentes de qualquer outro tipo de arte, por ser uma arte de baixa resolução. Dithering: É o uso de padrões de pixels para se criar a ilusão de que existem mais cores do que realmente se estão sendo usadas. Também é usado para se fazer texturas. Anti-Alias (ou AA): Técnica para se suavisar linhas, usando tons médios para reduzir o contraste entre a cor da linha e a cor que envolve a linha. Sombreamento: O sombreamento em pixel art deve ser feito como em objetos reais, com base em uma fonte de luz. Sombrear a figura das bordas para o centro é um erro bastante comum, chamado de Pillow Shading (ou sombreamento 'travesseiro') Salvando deu Trabalho:Para se salvar um trabalho seu no computador, deve-se usar o formato correto. JPG é um formato que usa um tipo de compressão bom apenas para imagens suaves e contínuas. Se usado no pixel art, causa uma enorme perda de qualidade BMP é um formato que apesar de manter a qualidade, acaba resultando em um arquivo muito pesado GIF e PNG são os formatos mais apropriados. GIF, com uma paleta limitada a 256 cores, é o formato ideal, já que é o menor e dificilmente o pixel art terá tantas cores. Se você usa o programa Paint para fazer pixel art, salve como PNG, pois quando o Paint salva como GIF, ele usa uma paleta de cores padrão, e causará alterações de cores no seu pixel art. Categorias:Pixel art é normalmente dividido em duas categorias. Isométrico é o pixel art que imita uma visão em 3 dimensões, mas que não possui perspectiva. Não-isométrico é qualquer outro tipo de visão como Front View (frente) ou Top View (de cima) Como começar a fazer Pixel Art? Existem vários programas para se fazer Pixel art. O mais simples deles é o conhecido Microsoft Paint, ou como dizem: MS Paint. A interface do Paint, é muito muito simples, e com o tempo você entenderá cada uma das funções que ele é capaz de realizar. Ferramentas Básicas:LUPA - Amplia ou reduz o CANVAS (Área onde se desenha ou Área selecionada). LÁPIS - Ferramente capaz de pintar um pixel por vez. BORRACHA - Apaga o que foi desenhado. LATA DE TINTA - Preenche formas com cores. Controles Básicos. CTRL + A = Seleciona todo o Canvas. CTRL + C = Copiar Canvas. CTRL + E = Abre a Janela de Atributos do Canvas. CTRL + F = Fullscreen CTRL + G = Cria uma grade de pixels nos aumentos de 6x e 8x da LUPA CTRL + R = Abre Janela de Inverter ou Girar o Canvas. CTRL + T = Ocultar Barra de Ferramentas. CTRL + V = Colar Canvas. CTRL + Z = Desfazer ação. Desenvolvimento: Agora que já temos uma abordagem geral sobre o tema, vamos aprofundar nossos estudos. Luz e Sombra na perspectiva 45°.Para quem está começando é essencial ter noção de como a luz se comporta na perspectiva que focamos. De modo simples, a luz tem sua fonte a 45 graus acima do objeto, ou seja, a parte "noroeste" do sprite precisa sempre estar mais iluminado do que a parte "sudeste". Vejamos: Obs: Virar a sprite horizontalmente permite verificar se a luz está se comportando da maneira correta (Vindo de uma fonte que está a esquerda e acima do sprite - ou seja, a noroeste ) Lembrem-se de sempre considerar que a parte sudeste não é totalmente escura. Pois a parte da luz que vem do noroeste e chega até sudeste cruzando o sprite, pode refletir/refracionar e iluminar a parte sudeste, mas lógicamente, essa luminosidade será menor. Uma das regras mais importantes e obrigatórias caso seu intuito seja seguir o padrão Tibia: A luz vem do noroeste, mas mesmo assim, ainda existe luz vinda das demais fontes naturais e refletidas pelas superfícies. Sendo assim, seu sprite recebe luz de todas as direções, mas preferencialmente pelo Noroeste. Anti-Aliasing (AA). Quando trabalhamos com pixels percebemos que as bordas dos desenhos costumam aparentar muito o fato de que os pixels são de fato quadrados. O problema de muitos desenvolvedores gráficos no começo do pixel art, foi justamente no momento em que precisavam desenhar elementos que não seguissem o padrão quadrado dos pixels, como por exemplo Círculos, Esferas, e bordas redondas. Para muitos, a solução desse problema surgiu com a criação da ténica de Anti-Aliasing ou simplesmente AA. O AA foi um grande avanço no desenho de formas esféricas ou outras que precisassem passar a idéia de uma superfícia lisa, sem irregularidades. Mas como isto é possível se todo sistema televisual utiliza PIXELS para formar gráficos? A resposta é simples: O AA utiliza pixels que misturam as linhas com o plano de fundo em que elas estão. Quando isto é feito, nossos olhos não conseguem distinguir as irregularidades dos pixels. Em primeiro lugar devido ao tamanho dos pixels e segundo lugar devido a uma boa suavização de bordas. Vejam no exemplo: http://img507.imageshack.us/img507/8484/aaexampleok2zl9.png Obs: Créditos da imagem: Galiant Na esquerda da 2° imagem, vemos o circulo formado de vários pixels pretos. Suas bordas estão "cruas" e sem AA. Assim, mesmo no aumento menor é possível perceber as falhas de suas bordas redondas. Na direita da imagem vemos o mesmo circulo após a aplicação da técnica de Anti-Aliasing. E agora, no aumento menor, não se pode mais ver as falhas das bordas. Como fazer Anti-Aliasing? O Anti aliasing é simples apesar de não parecer. Tudo se baseia em 3 passos: 1 - Observar primeiro o desenho que se quer suavizar. 2 - Observar o fundo no qual este desenho está inserido. 3 - Adicionar cores que simbolizam a mistura das cores do desenho, com o seu fundo. No exemplo acima (dos circulos) tinhamos um circulo PRETO, num fundo BRANCO, então apenas adicionamos tons de CINZA (PRETO + BRANCO) para suavizar a borda. No caso de uma sprite, o AA é feito internamente, ou seja, é feito dentro do outline/lineart da sprite, isso é feito utilizando no caso tons mais escuros nas partes cerrilhadas da sprite. Vejamos: Como podem ver na direita, a disposição dos pixels escuros nas partes mais cerrilhadas é o chamado AA, não é necessário que seja utilizado apenas preto para se fazer o Anti-Aliasing. Exemplo: "Ahh luquitos, eu quero fazer algo roxo, como eu faço AA nele?" Simples, apenas faça os passos iniciais para se fazer uma sprite: Faça um outline (contorno do sprite) Comece a pintar. comece a fazer o AA. (no caso do meu amigo da sprite roxa, utilize tons roxos escuros nas partes cerrilhadas da sprite) Logo depois do AA pronto faça a Iluminação, no caso, Luz e Sombra. Depois de todos esses passos, veja se não há mais nada para arrumar e "Voilá" Sua sprite está pronta. Conclusão: O Investimento do Tempo e Esforço. Trabalho em pixel art é demorado e muitas vezes de difícil processo. Quanto mais tempo você gasta trabalhando, e, em seguida, um pedaço de refino, Melhor será sua aparência. Isso muitas vezes pode levar horas, mas as recompensas valem a pena. Se você não está preparado para investir o tempo em seu trabalho, Ele não ira fluir, independentemente do número de tutoriais que você lê. Nada da certo na primeira vez? As primeiras interações com o seu outline/lineart ou imagem (sprite) sombreada pode muitas vezes ser frustrantes. Não desanime, mesmo os erros aparentemente mais hediondos podem ser editados em algo decente. Uma vez que a última versão de sua sprite é completa, sentar e dar uma boa olhada nela é essencial. Este reajuste geralmente divide-se em um simples ciclo de 3 etapas: 1 - O que aparentemente há de errado? 2 - Como posso corrigir? 3 - A fixação dele. O uso de referências. Muitas vezes, você pode compensar a falta de conhecimento sobre algum objeto através de imagens. Estes podem ser encontrados a partir de uma variedade de fontes, a mais imediata a ser através de um motor de busca na internet.Você também pode encontrar cores novas e interessantes a partir de fotografias e arte dos outros pixel. Lembre-se que o plágio direto, incluindo a edição do trabalho de outras pessoas, é distintamente ilegal. Espero que o tutorial tenha sido útil para alguém, caso o tutorial tenha uma grande repercussão e o pessoal mais duvidas, eu irei continuar atualizando ele com um conteúdo mais aprofundado sobre o tema. Obrigado a equipe do Xtibia pelo espaço. Atenciosamente, LuquitossML.
    1 ponto
  13. 115757

    [Arquivado]ohayo!

    1 ponto
  14. krex

    Khorem - Introdução ao Projeto

    Oi, eu sou o Goku! -sqn Introdução Sobre o projeto Objetivos Andamento Contribuição para o fórum INTRODUÇÃO "Khorem" é um projeto de um novo jogo com base no OTClient. Ele vem sendo desenvolvido unicamente por mim (Krex) desde 2012. A princípio, a intenção era de colocar em prática conteúdo visto na faculdade e reunir a paixão por RPG. Queria agradecer ao Etchebeur e ao Insaend pelas doações de sprites. Ajuda bastante! =) SOBRE O PROJETO O projeto tem como inspiração histórias medievais como Crônicas de Gelo e Fogo e Senhor dos Anéis. Serão 4 "grandes" cidades, cada uma com suas características próprias: clima, liderança, situação econômica e até mesmo religião. Além disso, dezenas de pequenos vilarejos, pousadas e fazendas poderão ser encontradas espalhadas pelo mapa (normalmente com uma só família vivendo). Cada NPC tem uma família ou história pra contar. Caso você pergunte a ele seu "name" ele vai te responder o nome e sobrenome. Isso significa que se você perguntar sobre outro NPC da mesma família, ele poderá te dizer algo: que gosta dele, que não gosta, que não se conhecem muito bem... ou quem sabe que tem uma quest com algo pra você entregar pra ele... Isso também vale pra NPCs que moram na mesma região. Afinal, como podem dois moradores de uma mesma vila não terem o que falar um sobre o outro? O jogo vai ter algumas "diferenças" pra outros jogos no mesmo padrão. Os monstros terão um sistema de leveis, e sua força/vida/loots e experiência vão aumentando a cada nível. Um rato no nível 1, por exemplo, tem 10 de vida, dá 5 pontos de experiência e pode dropar até 5 moedas de prata. No nível 2, ele tem 20 de vida e dá 10 de experiência e pode dropar até 10 moedas de prata, além de um pedaço de queijo, que no nível 1 não é parte do loot.. No nível 3, ele tem 30 de vida, 15 de experiência, 15 moedas de prata e por aí vai... O sistema de dinheiro também vai ser um pouco diferente: a moeda mais baixa é a de prata, depois ouro e por último diamante. Em alguns lugares, itens poderão ser utilizados como "moeda alternativa" ou ter um valor mais alto do que o geral: no deserto por exemplo, NPCs podem preferir negociar por comida do que moedas de ouro. Couro é bem visto na área gelada. A princípio não vão haver vocações específicas. Você pode treinar corpo-a-corpo e arco e flecha, se quiser. Isso é algo a ser decidido mais pra frente... Khorem - Genesis History of Lauthern Ruins Mainport A maior cidade de Khorem. Conhecida pelo movimentado comércio e pelos grandes portos, tem a maior população do continente. É possível fazer ótimos negócios com preços abaixo do valor encontrado nas outras cidades, e ocasionalmente pode-se conseguir mercadorias raras nos comerciantes da cidade. A maioria absoluta da população é devota da deusa Ari, e existem algumas estatuas e pequenos templos dedicados a ela . A cidade também sofre com uma grande desigualdade social, principalmente depois da destruição da cidade de Lauthern, quando grande parte dos plebeus desabrigados migraram pra Mainport. Atualmente, é dividida em 3 partes: os nobres (grandes mercadores, donos dos maiores pontos comerciais e dos melhores barcos), os plebeus (mercadores donos das pequenas lojas e os pescadores) e os miseráveis(famílias desabrigadas no desastre de Lauthern). Oakhem A menor e mais nova cidade de Khorem. Nasceu em meio as temidas florestas no sul do continente, formada por famílias que não se adaptavam ao estilo de vida de Mainport e Lauthern. A maioria de sua população acredita nos deuses da floresta e não é devota de Ari, e muitos também não acreditam na história da criação de Khorem. Nas outras cidades, muitos acreditam que Oakhem será a próxima cidade a ser atacada (por centauros, ents, elfos e criaturas da floresta). Sandstone É um conjunto de tendas de nômades que antigamente vagavam pelo deserto, mas se aconchegaram nas margens do continente e hoje vivem em harmonia.Diferente das demais, não é bem uma cidade: não tem grandes muros ao redor, e nem ao menos um rei ou líder. Apesar disso, é um dos lugares mais seguros pra se viver. Alguns moradores afirmam que costumam ver dragões sobrevoando as distantes montanhas à leste da cidade Snowden "A cidade congelada". Fica localizada em uma ilha conhecida como Blizzard Island, no extremo norte de Khorem. A ilha tem esse nome porque sofre com uma estranha nevasca o tempo todo. Acreditam na deusa Ari mas temem os deuses antigos da floresta e principalmente do gelo. Seus moradores são em grande parte bárbaros e guerreiros, que lutam com grandes machados. Desde a destruição de Lauthern, tem uma certa dificuldade pra encontrar armas de qualidade. OBJETIVOS A intenção é de tornar o Khorem um jogo com todo o aspecto de um livro, onde o jogador pode contribuir para o resultado final. Soms diferentes em cada região Monstros diferentes e com leveis Jogabilidade diferente - puzzles como plataformas voadoras e etc Possibilidade de jogadores criarem suas próprias casas Variedade de livros, histórias, NPCs e etc ANDAMENTO Completo até então: Região "inicial" (primeira vila e seus arredores) com mapa completo. Monstros com level Primeiros NPCs e quests completos. 8 monstros completos 2 outfits Focando atualmente: Lauthern Ruins (80%) Criação de mais monstros Criação de mais outfits CONTRIBUIÇÃO PARA O FÓRUM Para contribuir com o fórum, me comprometo com: Tutoriais de Spriting Tutoriais de RPG (interpretação de texto, criação de personagem e etc). Pack de sprites free-for-use (mais adiante) Pra começar: http://www.xtibia.com/forum/topic/223323-entendendo-o-que-e-rpg/ É isso aí!
    1 ponto
  15. felippepsa

    [Encerrado]Abandonado

    Bom Gente estou criando um narutibia começei o projeto hoje ja foi adicionado 3 Classes:Uchiha,Aburame E Nara Não temos nenhuma spell criada ainda. Bom Temos Vaga De: Spritter (Vaga) (Vaga) Web Master (Vaga) (Vaga) Mapper (Vaga) (Vaga) Spell Creator (Vaga) (Vaga) Tbm sei criar um pouco Programmer (Vaga) (Vaga) Otc Creator (Vaga) (Vaga)Tbm sei fazer Nome: Cargo: Idade: Experiencia: --- Prints Screen ---
    1 ponto
  16. Shoguns

    Sword que suga mana.

    vai em weapons.xml e procura o ID da sua sword, e ela deve estar assim: <melee id="IDdaSword" level="50" unproperly="1" event="function" value="default"> Você deixa assim: <melee id="IDdaSword" level="50" mana="10" unproperly="1" event="function" value="default"> em mana="10" e a mana que vai gastar de quem esta atacando.
    1 ponto
  17. Jackgoku

    Ajuda Rápida !

    Maninho o Alex acabou de criar um tópico explicando sobre os iniciantes, as área correta, onde postar, e tudo mais. E mesmo assim vc posta na sessão de bots. Preste mais atenção, http://www.xtibia.com/forum/topic/227791-manual-sua-primeira-visita-ao-forum/ Reportado para que mova! Att.: Jackgoku
    1 ponto
  18. carloslend

    Khorem - Introdução ao Projeto

    Vim aqui pelo post no Facebook... Ótimo projeto. Eu queria ver algo que não fosse medieval aqui, mas assumo que esse projeto tá bem legal. Vou acompanhar o progresso. Ah, e tenho sprites pra doar também, do meu antigo projeto(Grecom), se quiser, me chame por pm que te passo meu skype e conversamos sobre. Boa sorte o/
    1 ponto
  19. FlamesAdmin

    [Encerrado] Slot Bugado

    Tu tem que por essa tag no item que vc ker que dê para puxar pro slot: <attribute key="slotType" value="ring" /> Exemplo: <item id="12344" article="a" name="Revive" plural="Revives"> <attribute key="description" value="A medicine that revives a Pokemon defeated or retrieves all your life and restore your attacks." /> <attribute key="slotType" value="ring" /> </item>
    1 ponto
  20. eduardosm14

    sourcer

    Theforgottenserver definitions.h Theotxserver resource.h o Texto [11:1:02.346] The Forgotten Server, version 0.4_DEV () [11:1:02.347] Compiled with GNU C++ version 4.4.3 at Jan 21 2014, 18:52:37. [11:1:02.347] A server developed by Elf, Talaturen, KaczooH, Stian and Kornholijo. [11:1:02.347] Visit our forum for updates, support and resources: http://otland.net. otserv.cpp se nao me engano... Se Ajudei rep +
    1 ponto
  21. AnneMotta

    [Life Thread] Jabuti Selvagem

    Opa, mais um LT, bem que poderia ser em calmera com a gente. Belo char ^^
    1 ponto
  22. Zoobu

    Seu Ultimo Sprite.

    Uma das minhas primeiras sprites.
    1 ponto
  23. homersapiens

    [Encerrado] Fly, Rid, pda

    Resolvido?
    1 ponto
  24. Mano Tenta Assim Vai Em Creaturescript Cria Um Arquivo.Lua E Renomeia Para recompense.lua E Coloka Isso Dentro local moneyPerLevel = 25 -- Gold coins per level. function onKill(cid, target, lastHit) if not isPlayer(target) then return true end if getCreatureSkullType(target) >= 1 then doSendAnimatedText(getCreaturePosition(target), "OWNED!", math.random(1, 255)) doPlayerAddMoney(cid, getPlayerLevel(target) * moneyPerLevel) doPlayerSendTextMessage(cid, 20, "Você recebeu "..getPlayerLevel(target) * moneyPerLevel.." gold coins por matar "..getCreatureName(target).." ["..getPlayerLevel(target).."].") end return true end function onLogin(cid) registerCreatureEvent(cid, "Recompense") return true end E Dentro Do Creaturescript.XML Coloca Isso <event type="login" name="LoginRgst" event="script" value="recompense.lua"/> <event type="kill" name="Recompense" event="script" value="recompense.lua"/> No recompense Do Creaturescript.Lua Tem Uma Tag Assim local moneyPerLevel = 25 Nao Mexa Em Nenhuma Tag Alem Dessa. Shadownzinho
    1 ponto
  25. Nil Value

    League OF Legends, Jobs.

    Olá pessoal hoje estou trazendo alguns trabalhinhos que fiz num aplicativo online.
    1 ponto
  26. WH47

    Sign (fundo)

    É pq o cara que fez a sign não criou em png (ou deixou o bg branco) Tirei mais ou menos http://i.imgur.com/383mfv3.png E presta atenção antes cara, o tópico só foi movido pq você agradeceu o cara falando que ficou otimo, então ai já é dado como sanado
    1 ponto
  27. Nil Value

    Adicionando novos pokemons no PDA

    Pessoas que procuram parar de jogar servidores para montar um e não sabem isso, @Topic Ótimo tutorial bolz parabéns
    1 ponto
  28. Codeur

    Sign

    Bam ta ai espero que goste. o/
    1 ponto
  29. Wuv4

    Utevo Res

    Para resolver mais facilmente seu problema, optei por trocar a magia por uma talkaction, que faz a mesma coisa. Primeiro, desative a magia no spells.xml. Depois adicione essa tag no talkactions.xml: <talkaction words="utevo res" event="script" value="summons.lua"/> Depois, crie um arquivo chamado summons.lua na pasta talkactions/scripts e coloque o seguinte dentro: local maxSummons = 2 local summons = { ["wizard"] = { monsters = {"Rat", "Cave Rat"}, mana = 200}, ["noble"] = { monsters = {"Dragon", "Dragon Lord"}, mana = 300}, } function onSay(cid, words, param, channel) param = string.lower(tostring(param)) if(param == "") then return true end if not summons[param] then doPlayerSendCancel(cid, "This doesn't exists!") return true end if #getCreatureSummons(cid) >= maxSummons then doPlayerSendCancel(cid, "You cant have more than "..maxSummons.." summons!") return true end for _, monster in pairs(summons[param].monsters) do local creature = doSummonCreature(monster, getThingPos(cid)) if not creature or not isCreature(creature) then doPlayerSendCancel(cid, "There is no space for summoning monsters!") return true end doConvinceCreature(cid, creature) end doCreatureAddMana(cid,-summons[param].mana) return true end
    1 ponto
  30. 1 ponto
  31. Wuv4

    Verificar o chão e manda som

    Adicione essas duas tags no seu movements.xml <movevent type="StepIn" itemid="103" event="script" value="soundStep.lua"/> <movevent type="StepOut" itemid="103" event="script" value="soundStep.lua"/> Depois, na pasta movements/scripts, crie um arquivo chamado soundStep.lua e adicione o seguinte código dentro : local config = { soundName = "sounds/Centralplains.wav", tileId = 103, storage = 55000, } function onStepIn(cid, item, pos, fromPos) if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, config.storage) < 1 then doPlayerSendTextMessage(cid, 26, config.soundName) setPlayerStorageValue(cid,config.storage,1) end end function onStepOut(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, config.storage) == 1 and getTileItemById(position, config.tileId).uid <= 0 then setPlayerStorageValue(cid, config.storage, -1) end end end Não testei, mas creio que vai funcionar, se não funcionar me avise.
    1 ponto
  32. Joga este layout dentro da pasta raiz Layouts. Depois vá ao config.php do website e modifique o template para o nome da pasta que voce jogou no layouts. Layout está perfeito, não há nenhum tipo de erro.. Quanto ao configurações.lua, não intendi muito bem..
    1 ponto
  33. VictorWEBMaster

    Character Information

    Sim, pega as pagina da ultima versão e coloca no seu site, veja se da algum erro, se der me avisa.
    1 ponto
  34. Gabriel Couto

    Galeria do Anyur

    IHUUU! Olds:
    1 ponto
  35. AnneMotta

    [Tutorial] Yalahar - Hunt Ghoul

    Bom, a MUITO tempo eu queria criar um canal no Youtube mais nunca tive ideia de nada para fazer, ontem tive uma ideia meio vaga mais resolvi fazer... Eu vou começar fazer alguns tutoriais de como chegar em Hunts, quests e coisas do tipo com toda informação possível só não sei se isso vai dar certo mais não custa nada tentar Se possível se inscreva no canal! Clicando aqui Bom, esse primeiro vídeo é bem pequeno, não tem "fala" e a musica é uma bosta e basicamente só mostra o caminho até a hunt para simplificação, só fiz para testar mesmo e ver se eu conseguia por em HD e fazer algumas modificações já que agora é um labirinto mexer no Youtube. Informações de Hunt Eu só testei a hunt com paladin e é simplesmente excelente, não sei outras vocações então vou por as informações baseadas exatamente na classe Paladin. Level Indicado: 25~40 Localização: Yalahar Exp: Muito boa Loot: Monstros: Existe somente 1 Demon Skeleton na cave. Dicas: - Evite deixar os monstros encostarem em você - Pegue os itens considerados mais "inúteis" caso esteja precisando de gold - Tome muito cuidado para não lurar muitos monstros - Tome cuidado com Demon Skeleton - XP do 25~40 é Excelente depois cai de rendimento um pouco Chegando até a cave Assistindo o video diretamente do Youtube fica melhor não sei o porque. Mapa da cave: Tudo na linha branca http://www.tibiawiki.com.br/wiki/mapa?x=32765&y=31090&z=9&zoom=5 Créditos: Markin
    1 ponto
  36. AnneMotta

    [Life Thread] Maarkiin Voltandoajogar

    soft nao é gasto é investimento, soft adianta muito a vida e reduz custos com potions! e as taks ja cançou? se sim caça lizard em chor (port hope) dropa spear loot bom exp boa! to pensando em fazer a task de carniphilas e parar depois disso, estou com 6 boss points GO 50 KOROLHO! que dor no coração :{
    1 ponto
  37. Alexclusive

    O Incrível Tópico Que Afunda

    Falou: Acabou de falar quando comentou. Acabou de falar quando comentou. Falou: Mas eu só digitei. Só eu que vi uma piada nisso? kkkkkkkkkkkkkkkk
    1 ponto
  38. Omega

    Script, chão, menssagem

    @Nil Value, por favor, respeite os membros e evite brigas desnecessárias. O Shoguns tem ajudado e postado conteúdo e, novamente, estava se voluntariando para ajudar. Não havia motivo nenhum para tal comentário. Espero que isso não se repita. Ah, mas me parece que ele estava certo. Usando itemid em vez de uniqueid ou actionid deverá fazer com que o script seja executado para qualquer piso daquele id.
    1 ponto
  39. xXMythuszXx

    Script, chão, menssagem

    Namoral tem gente que se morde para "arranjar" uma briguinha ou quér chamar a atenção, tópico reportado!
    1 ponto
  40. beto06

    [Show Off] Beto

    Parte de uma dungeon bem graande ;d HEROES http://3.imgland.net/w_VS4j.png
    1 ponto
  41. Nolis

    uMapinha

    esse é o objetivo, será uma cidade élfica, com muitos obstáculos (na entrada) mas tem um bom espaço para andar
    1 ponto
  42. Nolis

    uMapinha

    Começando um mapa própio...
    1 ponto
  43. Junior001

    Site nto ultimate

    Para adicionar imagens/news na pagina inicial você tem de colocar a sua account como adiminstrador do site mais ai como fazer isso ? Resposta: Você tem de ir no phpmyadmin/suadb/account/suaaccount e procurar por page_acess coloque 5 ou 6 na qual der por isso vareia os sites após ter feito isso vá no site relogue ou logue a acc, você notara que no rodapé do site terá escrito Administration ou Administador você clica la será redirecionado a uma page la terá coisas como tipo/ SHOP ADMIN/ NEWS/ PAGES entre outras coisas para criar uma noticia como você quer no caso clique em NEWS logo após tera add news clique la e adicione sua news para adicionar imagens você terá de pegar o link em algum site onde você der up load na image e colocar la. e para Adcionar uma pagina é simples você pode fazer do mesmo jeito só que em PAGES e depois só adicionar no index.tpl em templates espero ter ajudado
    1 ponto
  44. tente esse http://www.xtibia.com/forum/topic/214461-recompense-kill/
    1 ponto
  45. Oneshot

    Sem nada pra fazer

    Não sou programador, sou um cara que se acha designer porque faz umas signs e avatares mal feitos pra cacete, além de se achar zueiro.
    1 ponto
  46. xXMythuszXx

    Novo Cronograma de Equipe!

    Sim, o conteúdo de seções (mapping, scripting, spriting, etc) é semanal para a moderação, colaboração e estágio Esperamos melhorar Reporte tópicos para ajudar Sim, ontem mesmo reportei 2 páginas inteirinhas lá, queria que mais pessoas fizessem isso, outros membros.. Mas aos poucos vamos deixando o ekz cada vez melhór.
    1 ponto
  47. xRunning

    PIP (Se possivel)

    Nossa, cara. Perfeito. Obrigado pela ajuda mesmo. Agradeço por todos que ajudaram.
    1 ponto
  48. Aiga

    Seu Ultimo Sprite.

    Goren aumenta o cabo da guarda da espada, pois está muito curta. Está cada vez melhor, parabéns.
    1 ponto
  49. alex125

    Soluçao Shop Gesior

    Bom Galera por um tempo tive uma dificuldade sobre o shop(Site) e a comunicaçao com o jogo, entao prestem atençao que vou colocar passo a passo o que montei de cada gente boa q fui encontrando em forums e cheguei ao 100% shop gesior. entao vamos la:[/size] 1-Real Server 2.2.5 (8.54-8.57) - XTibia.com, por doidin 2-Gesior ACC Maker - XTibia.com, por doidin obs: n testei em outros a nao ser os acima listados, nao me responsabilizo por testes em outras versoes este mesmo acima citado estao pra downloads aqui no x'tibia. apos seguir tutorial de instalaçao do gesior e ocorrer instalaçao 100% perfeita, tive a dificuldade de comprar itens no site e ir para o players in game entao seguir o seguinte tutorial: 1- Abra ".../xampp/htdocs/config/config.php" e ative o shop system (mude "0" para "1"): Código: $config['site']['shop_system'] = 1 2. Abra o arquivo globalevents.xml e adiciona a tag: Código: <globalevent name="shop" interval="30" script="shop.lua"/> Em data/globalevent/shop.lua coloque: Código: 2.1- CONFIGURAÇÃO No início do arquivo postado acima é parte do shop config: Código: -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 17 -- time (in seconds) between connections to SQL database by shop script SQL_interval = 30 Script padrão para se conectar com o banco de dados 1 vez a cada 30 segundos. 2.2- Abra seu arquivo constant.lua que se encontra em "data/lib/constant.lua" e adicione esta linha em qualquer lugar: InitShopComunication = 0 3-Na database do seu otserv execute (no phpmyadmin): Código: CREATE TABLE IF NOT EXISTS `z_ots_comunication` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL default '1', PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_offer` ( `id` int(11) NOT NULL auto_increment, `points` int(11) NOT NULL default '0', `itemid1` int(11) NOT NULL default '0', `count1` int(11) NOT NULL default '0', `itemid2` int(11) NOT NULL default '0', `count2` int(11) NOT NULL default '0', `offer_type` varchar(255) default NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_history_item` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `offer_id` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_history_pacc` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `pacc_days` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); 4- Fim da instalação. Agora adicione ofertas!! (exemplo abaixo) Exemplo de configuração de ofertas. Execute na database do seu OT: Código: INSERT INTO `z_shop_offer`(`id`,`points`,`itemid1` ,`count1` ,`itemid2` ,`count2` ,`offer_type` ,`offer_description` ,`offer_name`) VALUES (NULL , '10', '0', '12', '0', '0', 'pacc', 'Buy 12 days of premium account for yourself or your friend!', '12 Days of PACC' ), (NULL , '40', '5890', '50', '0', '0', 'item', 'Buy 50 Chicken Feathers!', '50x Chicken Feather' ), (NULL , '100', '2466', '1', '1987', '8', 'container', 'Buy bag with 8 Golden Armor! Become a rich mother fucker!', '8x Golden Armor'); Quando você for adicionar novas ofertas de PACC id - empty (auto_incement) points - quantos pontos custa essa oferta count1 - Dias de PACC esta oferta dá. offer_type = "pacc" offer_description - Descrição da Oferta, exeplo: "Buy 5 days of PACC. With PACC you can visit new areas, fight stronger monsters and promote your character!" offer_name - Nome da oferta, como: "5 Days of PACC" Quando você for adicionar uma nova oferta de ITEM id - empty (auto_increment) points - quantos pontos custa essa oferta. itemid1 - ID do item criato no seu OT count1 - "quantidade" do item, como SD com 15 cargas tem "count" 15, item normais (bag, crossbow, golden armor...) tem "count" 1, "count" 3 não irá criar 3 Golden Armos, use 'container' para dar mais items. offer_type = "item" offer_description - Descrição da oferta, como: "Buy Golden Armor and become great knight! Fight stonger mosters and lose less HP!" offer_name - Nome da nova oferta, como: "1x Golden Armor" Quando você for adicionar uma nova oferta de CONTAINER id - empty (auto_increment) points - Quantos ponstos custa essa oferta itemid1 - ID do item criado dentro da BP count1 - "quantidade"/"tipo" dos itens da BP, para itens normais, use "count" 1, para dar mais itens use "count2" e coloce quantos itens serão dados. itemid2 - ID da BP (como uma bag: 1987, ESSE ITEM DEVE SER UM CONTAINER E DEVE SER USÁVEL!!!) count2 - Número de itens dentro do container, se você usar "bag" (id 1987) como container você pode por 1-8 items, se backpack 1-20, não coloque mais doque cabe no container! offer_type = "container" offer_description - Descrição da oferta, como: "Buy 8 Golden Armors in bag and become rich player! Fight stonger mosters and lose less HP or sell it for much cash!" offer_name - Nome da oferta, como: "8x Golden Armor" este tutorial foi do :KutyKutyx3 - ###### bom ate aew resolvemos o problema dos itens irem pro players, mas o gesior vem pra vender premy em vez de vip e n achando nenhum meio de fazer alguma coisa a respeito fui fazendo testes ate chegar ao ponto entao vejam a soluçao deste fator. mantive o shopadmin do gesior e substituir o shopsystem que peguei de outro forum segue link abaixo http://www.multiupload.com/AOA619X65R , observaçao e a seguinte extraia e pegue so o shopsystem e cole na sua pasta htdocs n substitua o shopadmin este item foi criado por gpedro do ######. ainda n terminou xD [TFS 0.3/0.4] O melhor sistema VIP sempre! [Action/Movevent/Globalevent] Acção [Movevent /] Globalevent Olá. Primeiro de tudo Se você estiver indo para publicá-la em outro lugar, eu não quero que você tome os créditos porque sua mina de 100%. Primeiro de Tudo Se VOCÊ estiver indo parágrafo publica-la em Outro Lugar, eu Não Quero Que VOCÊ tome OS Créditos PORQUE SUA mina de 100%. Bem, eu vou explicar o sistema .. Bem, Vou Explicar eu o Sistema .. A maior parte do sistema vip usar um globalevent para remover um dia vip a cada 24 horas, mas, e se o serv uptime têm 23 horas e acidente? A Maior parte do Sistema vip USAR UM globalevent n removedor vip dia UM A cada 24 horas, mas, e se o uptime dez serv 23 horas e acidente? O dia não poderia ser removido, então eu consertei, agora o dia vip será removido em uma hora específica, se você configurá-lo para duas horas, o dia vip serão removidos em duas horas por isso, se o acidente serv para ele como 3 minutos ainda irá remover os dias VIP 02:00 .. O dia Não Poderia Ser removido, elemento Fixo assim Que eu, agora o dia vip Será removido Hora Específica em uma, SE VOCÊ configura-lo n. Duas horas, o dia vip Serao em removidos Duas horas Por isso, se o acidente Para ele serv Como três minutos Ainda vip ira Retirar o dia não 02:00 .. Também funciona para todas as contas a apenas como uma conta premium. Também funciona Para todas as Contas Apenas como um Uma Conta premium. Testado em TheForgottenServer 0.3.6 / 0.4 TheForgottenServer Testado em 0.3.6 / 0.4 Este sistema VIP contém: Este Contém Sistema VIP: * Suas funções proprias Funções Lua Lua * Removedor automático dia. Removedor Automático dia. * Telha VIP. Telha VIP. * OnLogin script para verificar vip. script OnLogin vip verificar parág. * Medalha de VIP. Medalha de VIP. * Remover Comando Dias Vip. Vip comando remover Dias. * Add Command Dias Vip. Adicionar Commando Vip Dias. Okey bem aqui vai. Vá para o seu phpmyadmin eo execute: ALTER TABLE `accounts` ADD `vipdays` int(11) NOT NULL DEFAULT 0; Agora, vá para dados / lib / function.lua e adicione estas linhas no topo. Depois de feito isso, adicione essa linha de dados / creaturescript / login.lua registerCreatureEvent(cid, "VipCheck") agora, em dados creaturescript / scripts crie um novo arquivo e nomeá-la vipcheck.lua dados / creaturescript / creaturescript.xml <event type="login" name="VipCheck" event="script" value="vipcheck.lua"/> Agora, vá para a data / globalevents / scripts /, crie um novo arquivo e nomeá-la daysremover.lua dados / globalevents / globanevents.xml <globalevent name="VipDaysRemover" time="00:01" event="script" value="daysremover.lua"/> You can change the time when the vip day is going to be removed in ( time="00:01" ). Você pode mudar o tempo quando o dia vip vai ser removido (hora = "00:01"). If you have more than or just 1 vip day, when you login you'll get a message: Se você tiver mais de um dia ou apenas vip, quando fizer o login, você receberá uma mensagem: Outros scrips VIP Tile : data/movements/scripts/ viptile.lua dados / movimentos / scripts / viptile.lua data/movements/movements.xml dados / movimentos / movements.xml <movevent type="StepIn" actionid="11223" event="script" value="viptile.lua"/> Em mapear editor, apenas conjunto de ações id 11223 para a telha que você quer ser telha VIP Medalha VIP dados / ações / scripts / vipmedal.lua data/actions/actions.xml dados / ações / actions.xml <action itemid="2112" event="script" value="vipmedal.lua"/> Não se esqueça de mudar o ID do item. Adicionar comando dias VIP data / talkactions / scripts / adddays.lua data / talkactions / scripts / talkactions.xml / <talkaction log="yes" words="/adddays" access="5" event="script" value="adddays.lua"/> Comando Remover dias VIP data/talkactions/scripts/ removedays.lua data / talkactions / scripts / removedays.lua data / talkactions / scripts / talkactions.xml / <talkaction log="yes" words="/removedays" access="5" event="script" value="removedays.lua"/> Porta VIP dados / ações / scripts / vipdoor.lua dados / ações / actions.xml <action actionid="2112" event="script" value="vipdoor.lua"/> apenas para jogadores VIP Efeito globalevents / scripts vipEffect.lua / data/globalevents/globalevents.xml dados / globalevents / globalevents.xml <globalevent name="vipEffect" interval="2" script="vipEffect.lua"/> Funções * getPlayerVipDays(cid) --- Use it to check how many vip days the player have. getPlayerVipDays (cid) --- Use-o para verificar quantos dias vip muitos, o jogador tem. * doAddVipDays(cid, days) --- Use it to add vip days to someone. doAddVipDays (cid, dias) --- Use-o para adicionar dias vip para alguém. * doRemoveVipDays(cid, days) --- Use it to remove vip days to someone. doRemoveVipDays (cid, dias) --- Use-a para remover vip dia para alguém. creditos deste ultimo foi do kekox da otland net. com isto a vip fucionou tranquilo resolvendo assim o problema de muitos que queriam deixar a premium pra todos free e ter players com vantagens pelo vip que agora e possivel pelo gesior xD! bom pessoal agora tudo prontinho da use no item o nome vip aparece compra pelo site se otrna vip e pelo comando /vip add 30 nick o status vip tb fico ok no site uso o client 8.54 e o gesior e jogo acima citados. meu site: http://blackout-pvp.servegame.com:8090/site atualizado...
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...