Ir para conteúdo

Líderes

Conteúdo Popular

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

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

    [Life Thread] Jabuti Selvagem

    Eu e mais uns 10 amigos voltamos a jogar o global alguns dias atrás, e eu estava dando uma olhada nessa área e achei legal a idéia de mostrar meu char Informações sobre meu char: Nome: Jabuti Selvagem Mundo: Danera Vocação: Master Sorcerer Level: 47 Magic Level: 42 =( Premium Account Meu set atual: Meu outfit atual: Eu e meus amigos resolvemos voltar a jogar para, principalmente, pklizar bastante rs. Já começamos bem (quase peguei redskull) vou postar abaixo uma print da gente matando um kina level 63. Screen Shots: Atualizações diárias: Por enquanto é isso, pretendo ir atualizando esse tópico sempre. Se tiverem algum sugestão de algo mais que eu deva postar, por favor me digam
    1 ponto
  16. Wiliner

    Gênesis

    Gênesis “Inspirado pelos sonhos, mergulhado em suas idéias e regido pela esperança de um novo amanhã, o tempo constrói.” Escritor deste pergaminho. Prólogo O vazio torna-se algo eloquente, quando se está sozinho. Não há como ver, pois naquele espaço só há escuridão, só há trevas, somente a cor negra envolve aquele nada, fazendo com que apenas uma, das três entidades sagradas reine soberana. Tal entidade amante da solidão, apreciadora do vazio, um ser vivente em espírito, cuja origem se faz desconhecida. Sabe se apenas que essa aura negativa se chama Avilack, e tudo o que é impuro lhe convém. Em contradição ao seu irmão, eis o senhor da justiça e virilidade: Anëron. Nascido da vontade e da audácia do tempo, crescido em meio ao vazio, tornou-se completo apenas sentindo a presença de seus irmãos, pois sua visão se esbarrava nas cortinas de escuridão que pairam neste espaço sem cor, sem vida, monótono. Com o sentimento de amargura aflorando sobre a sua essência e com seus pensamentos em decadência, tais regidos pela vontade de mudança, e impedidos pelo medo do novo, eis o tempo, que há muito vive dentre este espaço vazio; tal entidade chama-se chama Aluriel, qual origem nunca foi especulada, devido a sua antiguidade, Aluriel se revela o irmão mais velho; senhor do destino, arauto da soberania, provedor da paz e da misericórdia, considerada entidade suprema, pois todos sucumbem perante o tempo. Conheçam agora, palavras escritas pela mão de um desconhecido. Tal ser viveu para narrar este mito envolvente, imaginando um dia que este pergaminho fosse conhecido por todos os habitantes deste mundo, que merecem conhecer a sua origem, e a origem de sua casa. Das palavras deste pergaminho, aflora uma história de renovação, cuja determinação de uma entidade há muito amargurada, deu vida a este pedaço de criatividade, banhado pela sua inspiração proveniente de sonhos desconhecidos. Eis Elënor, o fruto da criação do tempo, em sua mais estável condição mental. Capitulo I A primeira inspiração A solidão, a monotonia e o vazio do nada, levaram Aluriel a deixar que sua imaginação assumisse o controle. Ao acordar do seu terceiro descanso, ainda assustado, o tempo se perguntava o que havia acontecido naquele breve período, cada descanso do tempo era proveniente de uma sensação de amargura que se originava devido a sua situação monótona. O que ocorreu dentro da mente do tempo? Eu não me atrevo a dizer. Mas, gosto de pensar que naquele período, o senhor do tempo teve o seu primeiro sonho, ou melhor, a sua primeira inspiração... Inspiração proveniente da agonia da escuridão e da medonha solidão, que agora, após uma longa existência das entidades, se fez presente entre os irmãos, até mesmo no emissário da escuridão, agora cansado de celebrar sozinho o seu reinado. Voltando para si aos poucos, Aluriel pôs-se a criar. Confesso que não imaginava que aqueles sonhos fizessem do tempo, a entidade criadora. Eu apenas tentei confortá-lo, abraçando a sua causa e acolhendo para mim, aquele sentimento de solidão, que aos poucos ia definhando aquela criatura. Mas, a minha surpresa não é o foco deste capítulo, e sim, o mais belo acontecimento desde que a escuridão existe. Aluriel criou sete linhas ambas com tons diferentes, inspiradas na cor negra daquele espaço, porém com uma admirável diferença; aqueles tons se faziam mais vívidos, mais exuberantes, alguns mais fortes, outros mais fracos. E as linhas se formaram como um arco, um arco com tonalidades tão belas, tão vivas... O arco de tons, assim o tempo o batizou. E com este, Aluriel fez nascer a sua arte primogênita, com essas linhas ele preencheu aquele espaço vazio com uma das novas tonalidades, ele pintou naquele quadro negro uma fonte de luz, totalmente oposta daquela imensidão negra. Não consigo expressar o quão pasma foi à reação do tempo, ao ver que tais sonhos, estavam sendo colocados em prática, modificando e expulsando aquele vazio e levando com ele o sentimento de monotonia e solidão, pois agora, pela primeira vez; Aluriel pode enxergar a essência de seus irmãos. As entidades não possuíam forma física, eles eram apenas essência, feita de energia, mesclada com flagelos de sabedoria concedida pelos inúmeros períodos de existência. Eis então, um momento que me deu arrepios: O primeiro encontro dos irmãos. Logo Avilack pôs se a frente dos dois irmãos formando aquele trígono, para que ambos pudessem enxergar a essência de cada um. Lembro-me da luz de Anëron, que ao entrar em contato com a nova tonalidade daquele espaço, brilhou e iluminou as proximidades até o limite do horizonte, aonde não se podia mais enxergar. Já a luz do tempo, brilhou menos vívida porem mais consistente, uma tonalidade um pouco mais escura do que aquela que preenchia o espaço, algo belo e imponente que logo se destacava dentre os irmãos. Vi também a essência de Avilack, e esta me assustou. A sua aura foi à única que permaneceu imersa nas sombras, com fagulhas de energia negra se soltando e o rodeando, como se a escuridão envolvesse a sua essência, mesmo com toda aquela luz que a aura de seus irmãos fazia questão de emitir. Após sua primeira inspiração, o tempo colocaria em pratica a criação de sua segunda obra, e foi ai que eu vi a audácia de Aluriel, ao meio daquela aura de tom anil, proveniente de sua primeira criação, a essência do tempo brilhou mais forte, liberando ao seu redor, um feixe de luz, uma luz que representava a coloração do segundo tom dos sete existentes. E aquele tom outrora preso dentre as linhas do arco, foi liberto, despedaçando-se em mil fios, e cada fio continha luminosidades diferentes, alguns mais escuros, outros mais vívidos. O feixe de luz alongava-se mais e mais, chegando e até ultrapassando os limites do alcance da minha visão. Os mil fios luminosos formaram um circulo de tamanho exorbitante, tal circulo prendia para ela a primeira inspiração, trazendo novamente aquela escuridão total para fora de seus limites, preenchendo apenas a si mesma, com o primeiro tom, e fazendo de sua linha externa uma forma de proteção, para que a escuridão não a penetre. Para isso foi construído o segundo tom, o tom dos mil fios, que guardariam aquela nova criação, a criação que hoje chamamos de: Elënor, o mundo; ou melhor: Nosso lar. Capítulo II Percepções Deprimido, isolado, afastado fisicamente de seus irmãos, eu podia sentir, ou melhor, eu podia ver na expressão daquela essência luminosa que construiu o mundo, resquícios de insatisfação; naquele momento eu pude ver que faltara algo mais para o tempo, ele precisara de companhia, ele precisara de conselhos, precisara de seus irmãos... Um brilho incessante, raios luminosos atravessavam-me como se não houvesse nada em que trombar; luzes disparadas, uma esfera de luz rodeia o espaço no qual o tempo gerou tal fenômeno. E refletidas pela própria esfera, aos poucos as luzes se dispersam, levando consigo aquele brilho divino, e deixando no local, o terceiro membro daquele arco composto; o terceiro tom. Rubra, era a sua cor, seus fios se moviam em formato melancólico, como se estivessem presos em uma superfície alteada, soprados suavemente pelo vento, beijados sutilmente por uma leve brisa; eis a terceira luz do arco de tons, a luz inspiradora, aquela que fez com que o tempo ouvisse pela primeira vez os conselhos de seus irmãos, graças ao terceiro tom, eu conheci o único significado do sentimento; emoção... Daqueles fios rubros, implodiram-se vários outros com o mesmo contraste, e aqueles traços, belos e límpidos abraçaram as entidades, unindo-as; e um clarão repentino da mesma cor, espalhou-se por aquele espaço. E de repente; solta pelo espaço, liberta do silêncio, ouve-se uma voz: - Eu preciso de vocês meus irmãos... – Era Aluriel, imerso em sua depressão, envolvido pelos rubros fios, almejando aquela ajuda consanguínea que agora, poderia ser prestada. Doce, quase melódica; só consegui encontrar essas duas conclusões sobre a voz do tempo... O resto ficou preso em minha mente, ou melhor, eu não fazia questão de encontrá-las, afinal, aquele momento era único, e me deixou marcada para sempre... Fora revelado o terceiro tom; o som. Vi a euforia, a movimentação, e me atrevo a dizer; a ensaiada dança das entidades. Pelo menos, era o que parecia. E ao contrário do que eu esperava de Avilack - aquela frieza absoluta, me surpreendi com sua reação, ao comemorar junto com o tempo e com o equilíbrio; Anëron – aquela nova tonalidade. Percepções presentes, podendo enxergar e agora ouvir, as essências se comunicam incessantemente. Ví Anëron expor suas opiniões sobre a inspiração dada pelo até então desconhecido ao mestre do tempo; Aluriel. Ví também o emissário de escuridão mostrando-se empolgado com aquela nova situação, assim como Aluriel, agora mais calmo e sentindo-se acolhido, abraçado por aqueles seres que há muito só demonstravam a sua presença ocupando aquele espaço vazio, sem percepções, sem inspirações, sem rumo. O terceiro tom, foi uma das criações mais importantes reveladas daquele arco. Porém, a quarta liberação do arco de tons, será de suma importância naquele espaço, dando ao mesmo, um aspecto vívido e o mais importante: Um aspecto preenchido... Capítulo III Traços primordiais Silêncio... Eis o ultimo som escutado por mim, após um brado incessante do emissário da escuridão. O tempo se afasta deixando aos poucos um curto espaço dentre ele e seu irmão sombrio; seguido por Anëron que também não parecia concordar com o rumo daquela conversa... Após a liberação do terceiro tom aquelas criaturas pareciam se entenderem, e após um período, um breve período de conversação o silêncio paira novamente dentre as três essências. Vi naquele momento uma discórdia entre os seres, mas a graça do som não foi perceptível para mim, apenas vi e senti aquelas essências se afastarem; a escuridão foi para um lado e o equilíbrio para o outro, deixando o tempo parado, pensante, com raiva... Naquele momento foi liberto o quarto tom; eis a tonalidade mais bela e mais vívida, foi por ela que derramei pela primeira vez as minhas lágrimas, foi por ela que acreditei na obra do tempo, foi daquela cor neutra quase invisível que saíra do arco de tons que os selos se desprenderam. Vi o primeiro - dos cinco selos - ser liberto daquele tom, qual se rumou para o sul, abaixo da essência do tempo, fixando-se na extremidade daquele círculo. E deste selo implodiu-se o primeiro elemento; e espalhou-se pela superfície do círculo uma manta da cor do tom liberto, tão transparente quanto o mesmo; emergindo ondulações, e com seu estado líquido preenchendo o espaço vazio do círculo, cobrindo aquela interminável superfície. E este selo foi chamado água, aquela que preencheria os vazios do espaço, quando esses se mostrassem, escorrendo por cada brecha deixada no interior do círculo; no interior do nosso mundo. Vi o segundo selo ser liberto, e este ficou parado abaixo dos pés do tempo, o rodeando em formato circular e dele implodiu-se o segundo elemento; uma superfície sólida que se deitou sutilmente em partes da água; sua cor era sépia e essa ocupara breves espaços do primeiro selo – a água -. Tendo suas formas diferenciadas, ora depressivas, ora alteadas com camadas em farelos; outras mais solidificadas, sendo chamado este selo por terra, aquela que cobriria as águas e alcançaria o espaço alteado, aproximando com seus picos, a criação do criador. Vi daqueles cinco, o terceiro selo ser liberto, este foi o selo fracionado, aquele que por pedaços foi mesclado ao segundo selo, nos picos alteados este selo foi posto para que por ele o criador visse o desenvolvimento de suas criações. Grená, era a cor soberana deste elemento o qual foi chamado por fogo; e dele expeliria uma quente camada que aqueceria o plano superior – a casa das essências, aonde os irmãos residem – para que estes não se esquecessem de seus traços primordiais, traços forjados pela inspiração do tempo, que jamais poderiam ser abandonados pela tríade divina. Ví o quarto selo ser liberto; cujo selo, meu preferido. Este liberou uma forma gasosa que rodeava a essência de Aluriel, e sua cor trazia em seus traços a mesma do tom que o prendia; sua leveza e suavidade, alisando e pairando sobre a aura do tempo, eram admiráveis. A forma liberta expandiu-se, como correntes elas seguiam aquele espaço no circulo, pairavam sobre toda a superfície, acima do segundo selo; este foi o quarto elemento, o elemento chamado por ar - cuja responsabilidade era levar consigo os sons que planavam nosso mundo ao ouvir das entidades para que elas não se esquecessem do segundo tom: O som -, que outrora trouxe uma momentânea alegria e familiaridade para os três senhores. Ao admirar de longe estava Avilack, preso em suas concepções, o emissário da morte estava parecendo não gostar do resultado dos quatro primeiro selos; juro que só deu tempo de ouvir a pronuncia de Aluriel e a expressão momentânea de ódio do senhor das sombras, um arrepio me subiu, e uma dor interna se instalou em mim quando ouvi as palavras do tempo, rígidas e frias: - Carregador da discórdia, semeador da escuridão, emissário das desavenças, tu criastes o quinto selo, o ultimo dos cinco. És a pestilência da minha criação, a praga concedida pelo desconhecido, em prol da solidão. Vá criatura vil, cuja aura sombria nos infecta, eu conjuro o quinto selo criado para ti; o selo do exílio! Exilado... Este foi o destino de Avilack, era inimaginável que após aquela primeira conversa das entidades, a conversa que o brado do senhor da escuridão rasgou as barreiras do som esticando se ao desconhecido, tivesse esse destino. Qual o motivo do exílio? Eu não o vi, não ouvi, mas por um momento senti o descontentamento de Avilack com aquela situação, mas um exílio? Foi demais para minha compreensão... Por vezes incontáveis eu presenciei o irmão sombrio olhando as obras do tempo de fora do círculo, talvez almejando uma nova discórdia, ou sabe-se lá o que passava no interior daquela criatura; então, decidi não interferir. Avilack: Aquele conjunto admirável de energia sólida que emanava de sua aura, aqueles simples fios negros que o envolviam, comparados a uma pintura abstrata, feita pelas mãos de um cego pintor, o qual não conseguiria enxergar os próximos passos de seu pincel. Aquela entidade era simplesmente um conjunto do nada mesclado com uma pitada de personalidade, cuja forma parecia oblíqua, qual vivia de desvios, criando ângulos certas vezes incompreensíveis, sempre se adequando a novas realidades; nunca preso a uma reta, que sempre leva ao mesmo caminho. Seria esta o inicio da decadência deste ser, que vi aos poucos desaparecer imerso na escuridão ao redor daquele circulo, exilado pelo próprio tempo, e condenado a vagar eternamente dentre os vácuos do nada... Próximos capítulos serão atualizados em breve.
    1 ponto
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. AnneMotta

    [Life Thread] Jabuti Selvagem

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

    Seu Ultimo Sprite.

    Uma das minhas primeiras sprites.
    1 ponto
  24. homersapiens

    [Encerrado] Fly, Rid, pda

    Resolvido?
    1 ponto
  25. 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
  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. Zoobu

    Galeria [Keviz]

    Ola xd Sprite da Ino. Comentem, a opinião de vocês é importante para min.
    1 ponto
  28. ArticFox

    Galeria [Nyco]

    O colar eu gostei muito, serio mesmo, podia melhorar um pouco na pintura do amarelo, já a sword não me agradou muito. Tem erros de AA e seria melhor fazer uma na diagonal exata... !! Vamo que vamo !
    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. 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
  31. 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
  32. Gabriel Couto

    Galeria do Anyur

    IHUUU! Olds:
    1 ponto
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. alissonfgp

    Global Server [1.0 ~~ 10.30]

    tem que usar site compativel com ele, no caso gesior 1.0 ou Znote Baixo do github? eu arrumei esse bug lá , e para os comandos de god funcionar o que nao sao todos, em sua Tabela "ACCOUNT" procura por "TYPE" e coloca 5, em GroupID coloca 3, nao tem como fazer mais nada, nao existe groupid 6.
    1 ponto
  39. 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
  40. Nolis

    uMapinha

    Começando um mapa própio...
    1 ponto
  41. 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
  42. tente esse http://www.xtibia.com/forum/topic/214461-recompense-kill/
    1 ponto
  43. Alexclusive

    Mudança de nome

    Seu pedido foi negado. Motivo não convincente! Lembre-se, a pressa é inimiga da perfeição. Nome alterado com sucesso! 7 anos de conta e ainda continua ativo meu jovem, parabéns! O nome Bruno, era de 2005 com 0 de tudo. _____________________________________________________ Tópico em dia, todos os nomes foram alterados ou não. Se seu pedido foi negada, não adianta comentar de novo reclamando que não vai adiantar, se eu fosse mudar, já teria mudado. Não tenho tempo pra perder! Não comentem se não for pra fazer um pedido!
    1 ponto
  44. 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
  45. xRunning

    PIP (Se possivel)

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

    Seu Ultimo Sprite.

    Parabéns galera ta evoluindo pra baralho! fiz um pau de macarrão sei la vou começar fazer coisas diferentes tbm
    1 ponto
  47. Aiga

    Seu Ultimo Sprite.

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

    Minhas exposições - SmiX

    Sinceramente odeio avaliar sprites com fundos coloridos ficam horriveis, tire esse fundo ai pelo menos do boneco que poderemos criticar melhor!
    1 ponto
  49. xRunning

    [Encerrado] Camera System

    Estou disponibilizando um tópico referente ao sistema pedido por você. http://www.xtibia.com/forum/topic/206044-sistema-de-tv-em-lua/ Obs: o Tópico não é de minha autoria
    1 ponto
  50. 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...