Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/03/13 em todas áreas
-
[Pokemon] Servidor Gabrieltxu e suas Versões
Silvaninho e 11 outros reagiu a Gabrieltxu por um tópico no fórum
Conteudo Retirado.12 pontos -
Nome: Pull/Push Spells Autor: Oneshot Tipo: Magia Já vi vários pedidos de magias que puxem ou empurrem monstros e jogadores, então resolvi fazer essas duas magias. Pull Spell local function doPullCreature(target, cid) if target > 0 then if not isNpc(target) then local position = getThingPosition(cid) local fromPosition = getThingPosition(target) local x = ((fromPosition.x - position.x) < 0 and 1 or ((fromPosition.x - position.x) == 0 and 0 or -1)) local y = ((fromPosition.y - position.y) < 0 and 1 or ((fromPosition.y - position.y) == 0 and 0 or -1)) local toPosition = {x = fromPosition.x + x, y = fromPosition.y + y, z = fromPosition.z} if doTileQueryAdd(target, toPosition) == 1 and getTileInfo(toPosition).house == false then doTeleportThing(target, toPosition, true) end end end end local spell = {} spell.config = { [3] = { damageType = 1, areaEffect = 2, area = { {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0} } }, [2] = { damageType = 1, areaEffect = 2, area = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 3, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } }, [1] = { damageType = 1, areaEffect = 2, area = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 3, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } } } spell.combats = {} for _, config in ipairs(spell.config) do local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, config.damageType) setCombatParam(combat, COMBAT_PARAM_EFFECT, config.areaEffect) function onTargetCreature(cid, target) doPullCreature(target, cid) end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") setCombatArea(combat, createCombatArea(config.area)) table.insert(spell.combats, combat) end function onCastSpell(cid, var) for n = 1, #spell.combats do addEvent(doCombat, (n * 150) - 150, cid, spell.combats[n], var) end return true end Push Spell local function doPushCreature(target, cid) if target > 0 then if not isNpc(target) then local position = getThingPosition(cid) local fromPosition = getThingPosition(target) local x = ((fromPosition.x - position.x) < 0 and -1 or ((fromPosition.x - position.x) == 0 and 0 or 1)) local y = ((fromPosition.y - position.y) < 0 and -1 or ((fromPosition.y - position.y) == 0 and 0 or 1)) local toPosition = {x = fromPosition.x + x, y = fromPosition.y + y, z = fromPosition.z} if doTileQueryAdd(target, toPosition) == 1 and getTileInfo(toPosition).house == false then doTeleportThing(target, toPosition, true) end end end end local spell = {} spell.config = { [3] = { damageType = 1, areaEffect = 2, area = { {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0} } }, [2] = { damageType = 1, areaEffect = 2, area = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 3, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } }, [1] = { damageType = 1, areaEffect = 2, area = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 3, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } } } spell.combats = {} for _, config in ipairs(spell.config) do local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, config.damageType) setCombatParam(combat, COMBAT_PARAM_EFFECT, config.areaEffect) function onTargetCreature(cid, target) doPushCreature(target, cid) end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") setCombatArea(combat, createCombatArea(config.area)) table.insert(spell.combats, combat) end function onCastSpell(cid, var) for n = 1, #spell.combats do addEvent(doCombat, (n * 150) - 150, cid, spell.combats[n], var) end return true end Abraços.2 pontos
-
Dicas de Tipografia Vi que muita gente tá em duvida em tipografia, então fiz uma video-aula mostrando o básico, com o tempo desenvolverei tutoriais mais avançados =) pfvr, não zoar a minha voz, Grata! huahua Abraços galerinhadomal2 pontos
-
Descrição Bom, a pedido do nosso amigo OverPower, estou reunindo num só pack meus melhores bgs, pra quem quiser, ta ai... Preview Contém 46 BGs Download Clique aqui Créditos WH47 Google DeviantArt2 pontos
-
Crie um arquivo chamado outfits.lua em data/creaturescripts/scripts. Cole o código abaixo: local outfits = { [1] = { [25] = 86, [50] = 98, [100] = 122 }, [2] = { [25] = 91, [50] = 103, [100] = 127 }, [3] = { [25] = 96, [50] = 108, [100] = 132 }, [4] = { [25] = 101, [50] = 113, [100] = 137 } } function onLogin(cid) registerCreatureEvent(cid, "Outfits") return true end function onAdvance(cid, skill, fromLevel, toLevel) if not outfits[getPlayerVocation(cid)] then return true end local tmp = outfits[getPlayerVocation(cid)] if not tmp[toLevel] then return true end local looktype = tmp[toLevel] doSetCreatureOutfit(cid, looktype, -1) return true end Adicione essas linhas em seu creaturescripts.xml <event type="login" name="PlayerLogin37" event="script" value="outfits.lua"/> <event type="advance" name="Outfits" event="script" value="outfits.lua"/> Só configurar essa parte aqui a seu gosto local outfits = { [1] = { [25] = 86, [50] = 98, [100] = 122 }, [2] = { [25] = 91, [50] = 103, [100] = 127 }, [3] = { [25] = 96, [50] = 108, [100] = 132 }, [4] = { [25] = 101, [50] = 113, [100] = 137 } } Seguindo sempre o modelo local outfits = { [1] = { [25] = 86, [50] = 98, [100] = 122, [NEW_LEVEL] = NEW_OUTFIT }, [2] = { [25] = 91, [50] = 103, [100] = 127, [NEW_LEVEL] = NEW_OUTFIT }, [3] = { [25] = 96, [50] = 108, [100] = 132, [NEW_LEVEL] = NEW_OUTFIT }, [4] = { [25] = 101, [50] = 113, [100] = 137, [NEW_LEVEL] = NEW_OUTFIT }, [NEW_VOCATION_ID] = { [NEW_LEVEL] = NEW_OUTFIT, [NEW_LEVEL] = NEW_OUTFIT } } Abraços.2 pontos
-
Ola galerinha do xtibiana. Vocês lembram do shopping system beta? Bem o shopping system beta foi um sistema criado por min a um tempinho. O link da versão beta é: http://www.xtibia.co...demo-by-caotic/ Os players podiam vender e comprar itens de forma rápida e pratica só que na versão demo ele tinha limitações então resolvi fazer a versão 1.0 com mais funções. Ele funciona da seguinte maneira: O player vende seu item no shopping depois outro player resolve ver o shopping e acaba comprando o item. Quando o player vendedor estiver online ele recebera a mensagem dizendo que o seu item foi vendido e ele recebera o money da compra. Na versão 1.0 do shopping system foi adicionado: Vamos a instalação. Primeiro execute estes comandos na sua database: CREATE TABLE "shop" ( "item" INT NOT NULL, "price" INT NOT NULL, "players" INT NOT NULL ); ALTER TABLE `players` ADD `shop` INT(15) NOT NULL DEFAULT 0 Agora va em lib e crie um arquivo lua chamado shop e coloque isto: function doPlayerAddItemInShop(cid, itemid, price) db.executeQuery("INSERT INTO `shop` VALUES (".. itemid ..", ".. price ..", ".. getPlayerGUID(cid) ..")") return true end function getItemPriceInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") return shop:getDataInt("price") end function getItemPlayerInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") return shop:getDataInt("players") end function getExistItemInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") if shop:getID() ~= -1 then return true end return nil end function getExistItemPlayerInShop(player, itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `players` = ".. player .." and `item` = ".. itemid ..";") if shop:getID() ~= -1 then return true end return nil end function doPlayerBuyItemInShop(cid, itemid, player) doPlayerAddItem(cid, itemid) doPlayerRemoveMoney(cid, getItemPriceInShop(itemid)) db.executeQuery("UPDATE `players` SET `shop` = "..getItemPriceInShop(itemid).." WHERE `id` = "..getItemPlayerInShop(itemid)) db.executeQuery("DELETE FROM `shop` WHERE `players` = ".. player .." and `item` = ".. itemid ..";") end function getMoneyGainInShop(cid) local money = db.getResult("SELECT `shop` FROM `players` WHERE `id` = "..getPlayerGUID(cid)) return money:getDataInt("shop") end function setMoneyGainInShop(cid, money) db.executeQuery("UPDATE `players` SET `shop` = "..money.." WHERE `id` = "..getPlayerGUID(cid)) end function doShowListShop(cid) local item = db.getResult("SELECT * FROM `shop` WHERE `item` ORDER BY `price`") str = "Itens a venda no shopping:\n\n" if item:getID() == -1 then doShowTextDialog(cid, 1387, "Não ha itens disponiveis no shopping\n Não existe itens no shopping!") return true end while true do local list = item:getDataInt("item") local players = item:getDataInt("players") local price = item:getDataInt("price") local shops = "Itens em Shopping" local list = string.upper(getItemNameById(list)) local players = getPlayerNameByGUID(players) str = str .. list .. " -("..players..")- Preço ("..price..")]\n\n" if not item:next() then doShowTextDialog(cid, 1397, str) break end end end Agora vá em talkactions/script e crie um arquivo lua chamado list e coloque este codigo: function onSay(cid, words, param, channel) doShowListShop(cid) return true end Agora vá em talkactions denovo crie um arquivo lua chamado de shop e coloque isto: function onSay(cid, words, param, channel) if param == " " or param == "" or not param then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o id do item") end local t = string.explode(param, ",") if not t[1] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o id do item") end if not t[2] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o preço do item") end if(isNumeric(t[1])) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do item") end if not (isNumeric(t[2])) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque O PREÇO DO ITEM") end if not getItemIdByName(t[1], false) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item "..t[1].." não existe") end local item = getItemIdByName(t[1]) local price = t[2] if getPlayerItemCount(cid, item) < 1 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem "..t[1].."") end if getExistItemPlayerInShop(getPlayerGUID(cid), item) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já pos este item no shop") end doPlayerRemoveItem(cid, item, 1) doPlayerAddItemInShop(cid, item, price) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você colocou no shopping o seu item "..t[1].."") return true end Agora continue em talkactions e crie um arquivo lua chamado de comprar e coloque isto: function onSay(cid, words, param, channel) if param == " " or param == "" or not param or isNumeric(param) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do item dizendo /compra(nome do item,nome do player)") end local t = string.explode(param, ",") if not getItemIdByName(t[1], false) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item "..t[1].." não existe") end local itemid = getItemIdByName(t[1]) local player = getPlayerGUIDByName(t[2]) if not getExistItemInShop(itemid) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item não existe no shopping") end if t[2] == " " or t[2] == "" or isNumeric(t[2]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do vendendor dizendo /compra(nome do item,nome do player)") end if not doPlayerRemoveMoney(cid, getItemPriceInShop(itemid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem "..getItemPriceInShop(itemid).." para comprar "..t[1].." do shopping") end if not player then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não existe nenhum item com o nome deste player.") end doPlayerBuyItemInShop(cid, itemid, player) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens você comprou "..t[1].."") return true end Agora coloque estas tags em talkactions.xml: Agora vá em creaturescripts/scripts e crie um arquivo lua chamado de shop: function onThink(cid, interval) if getMoneyGainInShop(cid) > 0 then doPlayerAddMoney(cid, getMoneyGainInShop(cid)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Seu itens foi vendidos você recebeu "..getMoneyGainInShop(cid).." money") setMoneyGainInShop(cid, 0) return true end return true end Registre o evento colocando em login.lua de creaturescripts e coloque isto antes do ultimo return: registerCreatureEvent(cid, "shop") Agora vá em creaturescrips.xml e coloque esta tag: E prontinho sistema instalado Comandos1 ponto
-
[Tutorial] Criando Novos Pokemons Para Pda [Iniciantes]
douglahz6996 reagiu a Yan Oliveira por um tópico no fórum
Bom vejo que muitos membros novos estão com duvidas de como criar novos pokemon no PDA... bom vim ensinar como. 1º Vai em Data/monsters e Crie o novo pokemon.xml e depois adicione ele no monsters.xml 2º Vai em Lib/Configuration e faça isso: Em movestable onde ficam os ataques dele so colocar os ataques vou dar exemplo dos ataques: ["NOME DO POKEMON NOVO"] = {move1 = {name = "Dragon Claw", level = 85, cd = 15, dist = 1, target = 1, f = 60, t = "dragon"}, move2 = {name = "Ember", level = 85, cd = 10, dist = 10, target = 1, f = 42, t = "fire"}, move3 = {name = "Flamethrower", level = 85, cd = 20, dist = 1, target = 0, f = 80, t = "fire"}, move4 = {name = "Fireball", level = 85, cd = 25, dist = 10, target = 1, f = 75, t = "fire"}, move5 = {name = "Fire Fang", level = 85, cd = 20, dist = 1, target = 1, f = 65, t = "fire"}, move6 = {name = "Raging Blast", level = 85, cd = 35, dist = 1, target = 0, f = 100, t = "fire"}, move7 = {name = "Fire Blast", level = 85, cd = 60, dist = 1, target = 0, f = 115, t = "fire"}, move8 = {name = "Wing Attack", level = 90, cd = 35, dist = 1, target = 0, f = 75, t = "flying"}, move9 = {name = "Magma Storm", level = 95, cd = 90, dist = 1, target = 0, f = 95, t = "fire"}, move10 = {name = "Scary Face", level = 90, cd = 50, dist = 1, target = 0, f = 0, t = "ghost"}, move11 = {name = "Rage", level = 85, cd = 40, dist = 1, target = 0, f = 0, t = "dragon"}, Ae se coloca os ataques que desejar, lembrando que f é força pra quem não sabe. e em Status Pokemon Kanto ou Johto mesmo pode add coloque isso: ["NOME DO NOVO POKEMON"] = {offense = 8.5, defense = 7.8, specialattack = 11, vitality = 7.8, agility = 167, exp = 209, level = 85, type = "TIPO DELE", type2 = "2 TIPO DELE"}, Ae vc balanceia ele de acordo a seu gosto. Depois em Fotos add ele: ["NOME DO NOVO POKEMON"]= XXXX, Em XXXX você coloca o id do portrait dele. Depois em Pokescatch add ele: ["NOME DO NOVO POKEMON"] = {chance = XXXX, corpse = YYYY}, Em XXXX a chance de capturar ele e em YYYY o Id do Corpse dele. Depois em Newpokedex add isso ele: ["NOME DO NOVO POKEMON"] = {gender = 875, level = XXXX, storage = 100, stoCatch = 666006}, Em XXXX coloca o level dele. Em OldPokedex add ele: {"NOME DO NOVO POKEMON", XXXX, 1006}, Em XXXX o level dele. E se for add alguma habilidade nele fica la no final, vou dar um exemplo de ele atravessando (GhostWalk) parede vc coloca isso: ["ghostwalk"] = {"Gastly", "Haunter", "Gengar", "Shiny Abra", "Shiny Gengar", "Misdreavus", "NOME DO NOVO POKEMON"}, Bom é isso... sei que é simples, mais fiz um tutorial basico para os iniciantes não ficarem com duvida.1 ponto -
[8.6] Emerald Map
jooaoguilheerme reagiu a luisfe23 por um tópico no fórum
Eae XTibianos... Estou trazendo para vcs o Emerald Map. • Créditos: Randall • Minimap: A qualidade ficou ruim porque salvei como JPG. • Download: http://www.4shared.com/file/AsHm4Soj/Emerald_Map.html • Download Link Protegido: http://lix.in/-85c7fb • Scan: http://www.virustotal.com/pt/analisis/320f026e6b49a99516ffccab44f3a985c7b49f5233a768a5a6139c499e8409a4-1279041485 Abraços.1 ponto -
O que são C4Ds? Como configurar? C4Ds são imagens aplicadas geralmente em cima da stock pra dar um "efeito" Suas configurações geralmente são: Linear Dodge, Screen e Color Dodge Criando sign com recursos C4Ds Achei na internet um ótimo tutorial explicando passo a passo de como aplicar C4D numa sign e estarei repassando pra vocês 01. Pressione Ctrl+N para criar um novo arquivo de 500x120 pixels, 72 dpi´s e modo de cor RGB, pressione Ok, pressione a letra D do teclado para resetar as cores de Foreground e Background para preto e branco, pressione Alt+Backspace (a tecla acima do Enter) ou pressione a letra G do teclado para selecionar a Paint Bucket Tool e clique no documento para pintar seu fundo de preto como na foto abaixo. 02. Agora pressione Ctrl+O e abra uma foto qualquer, para este tutorial iremos usar a imagem abaixo, com a foto aberta pressione Ctrl+A para selecionar seu conteúdo e depois pressione Ctrl+C para copiar. 03. Volte ao documento que criamos com o fundo preto e pressione Ctrl+V para colar, pressione a letra V do teclado para selecionar a Move Tool clique e arraste a imagem para posicionar onde achar melhor, feito isto pressione Ctrl+J para duplicar a layer. 04. Pressione a letra R do teclado para escolher a Blur Tool, passe nas áreas próximas a borda da imagem afim de borrar a imagem nestes locais. 05. Agora abra alguma arte criada no Cinema 4D, pressione Ctrl+O e escolha a imagem, neste tutorial iremos usar a imagem abaixo, depois de aberta pressione Ctrl+A para selecionar seu conteúdo, Ctrl+C para copiar. 06. Volte para o documento que estavamos trabalho e pressione Ctrl+V, pressione a letra V do teclado para selecionar a Move Tool e posicione a arte na área desejada, mude o modo de blend da layer para Linear Dodge, pressione a letra R do teclado para selecionar a Smudge Tool, vá passando a ferramenta em cima das áreas em rosa afim de transformar a imagem em um borrão, sua imagem deverá ficar parecida com a imagem abaixo. 07. Agora vá pressionando Ctrl+J para ir duplicando as layers e acentuando o efeito, depois de terminado vá pressionando Ctrl+E para mesclar todas as layers com o efeito rosa, deixe o modo de blend da layer em Linear Dodge. 08. Novamente pressione Ctr+O e abra outra arte feita no Cinema 4D, neste tutorial iremos usar a imagem abaixo, depois de aberta pressione Ctrl+A para selecionar seu conteúdo e Ctrl+C para copiar. 09. Volte ao documento que estavamos trabalhando e pressione Ctrl+V para colar, mude o modo de blend da layer para Color Dodge, pressione a letra V do teclado para selecionar a Move Tool e mova a imagem afim de deixar o efeito melhor. 10. Caso queira adicionar um texto e dar o efeito da imagem abaixo, pressione a letra T do teclado para selecionar a Horizontal Type Tool, escreva o texto que deseja, clique com o botão direito do mouse na layer de texto e escolha a opção Rasterize Layer ou Rasterize Type, mude o modo de blend da layer para Linear Dodge e defina em 50% sua opacidade, ao final sua sign estará como a da foto abaixo. site de origem: http://phonuts.org/?p=5011 ponto
-
Eu gostaria de compartilhar com vocês como é interessante que Atlantida World servidor. Ao mesmo tempo o projeto nasce de um grande OTS . Atlantyda World tratou-se um super server que pertencia a uma equipa polaca, tive o prazer de jogar nele, mas ao final de algum tempo fechou. O server esteve online varios meses, no entanto, alguém nao se apercebeu que as más escolhas da administração resultou em uma grande queda. Pack Full contém literalmente tudo para gozar as suas Atlântida! Mapa, scripts, actions, monters,etc! O importante é tudo isso vem de uma fonte legal como era na administração.Pessoalmente, eu não tenho tempo para abrir de novo este OTS por isso quis compartilhar com vocês tudo o que qualquer um de vocês pode reconstruir o que foi acima no fumo! Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 2202x1392. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Download ou Download Vírus Total Depois de vários pedidos decidi colocar um executável compactivel com windows, mas aconselho a configurar os vossos itens aconselho a utilização de rook para um maior rpg, bom jogo não esqueçam de um comentário e do REP+. Download Com exe e dlls Se tiver alguma dificuldade reporte-me, server configurado para ligar um mysql.1 ponto
-
Entendendo scripts da Pasta Data Nessa Serie de Tutoriais vou explicar e faze-los entender a base dos scripts em lua e xml. Desde você que não sabe nada de scripts e você que está num estagio médio A idéia aqui é você aprender e saber o que e não pode fazer, já que a criatividade é sua parte Esses tutoriais serão divididos em 14 partes, começando a explicar o if, else até os esquemas mais avançados. A vantagem daqui é que você poderá testar seus scripts no otserver e sabendo o que deve fazer fica mais fácil do que fazer coisas a esmo... Lembrando que você não ficará expert em LUA e sim em scripts de Otserver. Links em negrito já estão prontos ! A divisão é : Tutoriais Parte I – Básico do básico de Lua Parte II – Funções Lua Parte III - Monstros Parte IV - Raids Parte V - Intermediario de Lua Parte VI - Spells e suas grandes funções Parte VII – Actions Parte VIII – Movements Parte IX – A magia dos NPCS Parte X – Mega Quests Parte XI – Itens e grandes idéias Parte XII – Vocations e outfits Parte XIII –Sqlite no Forgotten Server Provas : Prova I - Script em Actions Tutoriais baseados no The Forgotten Server 0.3.0 Alpha 4 +. Use essa que por enquanto é a melhor distro disponivel Um pouco sabe os tutoriais não feitos: Talk Actions : Será um grande tutorial ensinando como utilizar a maravilha das talk actions. Mega Quests: Ensinará a fazer quests que incluem actions, movements,npcs, talk actions e algumas ideias e possibilidades. Darei como exemplo a segunda maior quest do meu ot caseiro. E ainda um tutorial completo de como usar o Quest Log. items e Grandes ideias: Ensinará como criar novas armas, itens para quest, tudo isso simples e facil, o que fará de seu ot muito especial. Poderá e haverá mais coisas que na hora lembrarei. Isso é só um aperitivo1 ponto
-
[Tutorial] Treinar Um Knight De Um Jeito Diferente
JDetonados reagiu a Maconheira por um tópico no fórum
Salve salve, estava andando por um fórum ai, e achei esse tutorial, achei bem interessante ele e decidi trazer ele aqui para o xTibia Obs: Para você usar esse método de treinamento você precisará de 30 ~ 60k (Depende do teu mundo). O que precisa para treinar: Ser level 10 (Leveis mais altos também da certo, mais terá que usar uma arma de level maior ainda). 1 ou mais Spellwand. Cranial Basher, Heroic Axe ou Mystic Blade. (Armas de level 60). Como fazer: Utilize a Spellwand para sumonar uma Mad Sheep. Ela possui a habilidade de se healar, porém só possui 22 de HP. Assim, utilizando uma arma de level alto, você dará apenas 1 de dano na mesma. Como o heal dela é rápido, teremos um treino excelente. Podemos conseguir skills 100+ nesse método porque sempre bateremos 1 de dano, independente do skills. Fotos: Créditos: Wiltiln (Autor do Tutorial) E é isso pessoal :]1 ponto -
Niver de 15 Anos da minha Prima
nathygyn reagiu a DiogoTemporario por um tópico no fórum
17 ANOS E FUGIU DE CASA ÀS SETE HORAS DA MANHÃ DO DIA ERRADO LEVOU NA BOLSA UMAS MENTIRAS PRA CONTAR DEIXOU PRA TRÁS, OS PAIS E NAMORADO UM PASSO SEM PENSAR UM OUTRO DIA OUTRO LUGAR PELO CAMINHO GARRAFAS E CIGARROS SEM AMANHÃ POR DIVERSÃO ROUBAVA CARROS ERA ANA PAULA AGORA É NATASHA USA SALTO 15, SAIA DE BORRACHA UM PASSO SEM PENSAR UM OUTRO DIA OUTRO LUGAR O MUNDO VAI ACABAR E ELA SÓ QUER DANÇAR O MUNDO VAI ACABAR ELA SÓ QUER DANÇAR DANÇAR DANÇAR PENUS DE CARRO CANTAM TURUTURURTURUTURUT TEM 7 VIDAS MAS NINGUÉM SABE DE NADA CARTEIRA FALSA COM A IDADE ADULTERADA (N SEI O RESTO) A VIDA É BELA O PARAÍSO UM COMPRIMIDO QUALQUER BARATO ILEGAL OU PROIBIDO UM PASSO SEM PENSAR UM OUTRO DIA OUTRO LUGAR O MUNDO VAI ACABAR E ELA SÓ QUER DANÇAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR PNEUS DE CARRO CANTAM TURURURURURURUTURUTURU (fading off) </SALVANDO O TÓPICO>1 ponto -
Pedido Entregue. O Que achou?'-' Valeu.1 ponto
-
[Tutorial] Como fazer letras de fogo no photoshop CS6
Gabriel Couto reagiu a Overpower por um tópico no fórum
Galera eu gostei para caramba desse tutorial e resolvi trazer para vocês os créditos estão lá em baixo. http://www.youtube.com/watch?v=3qam8e1IaVE Créditos: allanportilho1 ponto -
Oie Gente voltei aqui na area designer Bom hoje acabei de fazer 1 sign paara o @Tonynh espero que voces gostem pra mim foi meo melhor trabalho :D :D Como ja disse sou novo na area de design Tema: Assasin's Creed (era a imagem dele ) Bao aki ta elaa : Att:Bennyw1 ponto
-
Falae galera, suave? Estive viajando por um tempo porisso não deu para eu entrar aqui no xtibia =( Esse é meu primeiro tutorial beleza.. '-' Criando sign com borda modelada nível iniciante-médio.. 1- Crie um novo documento com o tamanho de 500x250 e o fundo transparente. 2- Pegue a ferramente "Caneta" mude lá em cima para "Forma" conforme a imagem. 3- Agora vamos pegar a régua, pressione CTRL+R para aparecer a régua, clique no lado esquerdo dela segure e puxe para o meio da página. Agora já pode começar a fazer a forma com a caneta, desfrute da sua imaginação '-'. 4- Feito isso ira ficar desse jeito porém diferente, claro. 5- Agora vamos duplicar ela Aperte CTRL+J para criar uma cópia, após criar uma cópia pressione CTRL+T para redimensionar ela, clique com o segundo botão do mouse e vá em "Virar Horizontalmente" 6- Depois de ter virado horizontalmente clique sobre ele e depois segure SHIFT, mova ele para a direita (>) e deixe ao lado igual essa imagem. 7- Agora iremos agrupar os dois.. Lá na barra de camadas > Clique sobre a cópia segure o CTRL e clique no outro.. Aperte CTRL+E para juntar. 8- Pronto, agora vamos fazer a borda.. Vá em SELECIONAR -> MODIFICAR -> CONTRAÇÃO. 9- Coloque quando você quiser e de OK, eu coloquei 15 no caso. Logo após clique na borracha, pegue a borracha de um clique dentro de onde está selecionado, e clique em ok no rasterizar camada. 10- Dai passe a borracha dentro de onde está selecionado irá ficar assim: 11- Agora iremos usar estilo na borda para dar um estilo '-', lá em cima na barra de ferramentas, vá em JANELA -> ESTILOS e click.. 12- Feito isso escolha um estilo que lhe agrade..No caso eu escolhi um baixado '-' mais vocês escolhem ai no final do tópico estarei disponibilizando um pacote de estilos ;D 13- Agora vamos adicionar uma render eu escolhi uma do naruto para combinar com o estilo (Na verdade nem sei se combino) posicione ele. 14- Depois de ter posicionado vá na ferramenta caneta, tire a visibilidade da camada da Render lá na barra de camadas >, e começe a fazer um contorno em baixo onde você quiser tirar uma parte da render para dar uma realidade, parecendo que a render está saindo de dentro da sign. 15- Depois de ter feito o contorno com a caneta igual a imagem, deixe a camada da render visível novamente. 16- Agora você ira clica na camada da render e deletar a parte selecionada na caneta, ficando assim 17- Após ter feito isso, iremos abrir uma stock e posicionar ela, depois iremos colocar ela como a ultima camada jogando ela lá para baixo.. 18- Denovo na ferramenta caneta iremos mudar de "FORMA" para "DEMARCADOR" lá em cima, e iremos fazer um contorno conforme a imagem para deletar o que ficou para fora da stock OBS: o Contorno não precisa ser perfeito, faça igual esta na imagem com quadrados em cima da borda e no fim não feche ele rodando a stock, faça ele dar uma volta na stock (Se não entenderem postem no tópico que explico melhor '-') 15- Depois de ter deletado o que tinha ficado para fora terá ficado assim: 16- Pronto, agora salve como PNG e desfrute da sua sign '-'. Créditos : 100% Overpower '-'1 ponto
-
tag: <talkaction words="/infomission" event="script" value="nome do arquivo.lua"/> script: function onSay(cid, words, param) if param ~= "" then return false end local storages = { [1] = "You are in mission 1.", [2] = "You are in mission 2.", [3] = "You are in mission 3.", storage = 2124, questName = "SmiX Quest", } if(getPlayerStorageValue(cid, storages.storage) < 0) then return doPlayerSendTextMessage(cid, 27, "You do not have to:"..storages.questName..".") and true end doPlayerSendTextMessage(cid, 27, "--Status Quest--\n"..storages[getPlayerStorageValue(cid, storages.storage)]..".") end1 ponto
-
local config = { prices = { [2173] = 250 }, words = { ["aol"] = "amulet of loss" } } function onSay(cid, words, param, channel) if(param == "") then doPlayerSendCancel(cid, words .." [item name]") return true end if(config.words[param]) then param = config.words[param] end local id = getItemIdByName(param, false) if(not id) then doPlayerSendCancel(cid, "This item does not exist.") return true end if(not config.prices[id]) then doPlayerSendCancel(cid, "Sorry, you can not buy this item.") return true end local backpack = doCreateItemEx(1988, 1) local amount = getContainerCap(backpack) local cost = config.prices[id] * amount if(not doPlayerRemoveMoney(cid, cost)) then doPlayerSendCancel(cid, "Sorry, you do not have enough money.") return true end for i = 1, getContainerCap(backpack) do doAddContainerItemEx(backpack, doCreateItemEx(id, 1)) end doPlayerAddItemEx(cid, backpack) return true end Tá aí, meu velho, fiz um sistema básico de compra por backpacks pra você. /bp aol Dá pra colocar qualquer item pra ser vendido aí. Só configurar o preço unitário. Abraços.1 ponto
-
Bom amigos do ékz eu vou esta criando uma loteria para sortear 3 contas no ot pokemon mundo yellow vai funcionar da seguinte maneira. vou disponibilizar 20 numeros e assim que os 20 forem completados eu irei Sortear usando o site ".http://sorteador.com.br/" vai ser simples. Para Participar basta ter 400 Post no forum. (quem tiver menos de 400 post nao poderá participar) isso é para evitar que criem novas accs para ganhar. Tenque ter no minimo 10 REP+ Regras: Nao Escolha Seu Numero se voce nao tiver 400 Posts e 10 REP+ Se Voce postar Comentarios aqui Será Desclassificado e Nao poderá Participar. Premios: 1° Colocado: Col Of / Level 194 / Mundo Yellow/ 2° Colocado: Polidos / Level 177 / Mundo Yellow/ 3° Colocado: Garrincha / Level 155/ Mundo Yellow/ Por favor colaborem Com as Regras eu conto com a colaboração de todos. Numeros Disponiveis: #1 = noobaozao #2 = caotic #3 #4 #5 = PiabetaMan01 #6 = Oneshot #7 = beddy #8 = Yan18 #9 = Anyur #10 = AnneMotta #11 #12 = StyloMaldoso #13 = Lordfire #14 = Stigal #15 = Pess0a #16 = LuckOake #17 #18 = Aluxes #19 #20 = Linshun Segurança a Conta Col Of e Polidos Já foi gerada a Recovery Key, Porem essas contas estao comigo a Mais de 1 ano e ninguem nunca recuperou. já a conta Garrincha a Recovery Key nao foi Gerada. Escolham Seus Numeros.1 ponto
-
function onUse(cid, item, fromPosition, itemEx, toPosition) local flag = 0 local pos = {x = 100, y = 100, z = 7} for i = 12252, 12259 do if getPlayerItemCount(cid, i) >= 1 then flag = flag+1 end end if flag == 8 then doTeleportThing(cid, pos) doSendMagicEffect(getThingPos(cid), 21) return true end sendMsgToPlayer(cid, 20, "You need all badges to pass!") return true end <action actionid="xxxx" event="script" value="yyyy.lua"/> xxxx = action da porta yyyy = nome do script1 ponto
-
Pô cara, brigadão =p Eu nem gosto de Assassins Creed *-* auhauhauh Vou por nos gifts ali na minha assinatura ^^1 ponto
-
a função doTeleportThing funciona com qualquer coisa que tenha uid, pode ser item ou criatura (npcs, monstros e players), qualquer coisa que tenha unique id, só não funciona com grounds se não me engano. a função getThingPosition faz a mesma coisa, retorna a posição de qualquer coisa que tenha uid1 ponto
-
como eu faço para mover item sem usar esse metodo?
tonynamoral reagiu a Skymagnum por uma questão
local moves = {0, 2, 1, 1, 3} for i = 1, #moves do addEvent(doMoveItem, i * 100, item.uid, moves[i]) end Então no caso moveria, pra cima, pra baixo, pra direita, pra direita, pra esquerda.1 ponto -
1. Render = Imagens que se usam para fazer trabalhos.. São imagens já recortadas, que é só você usar onde quiser (caso tenha permissão do autor) 2. Stock = São imagens ainda não recortadas, normalmente são fotos, ou paisagens! Quando recorta-se a parte principal da stock, como por exemplo uma pessoa, essa parte vira uma render. 3. C4D / 3D render = São imagens feitas em programas 3D ( Como o cinema4D ), que são usadas em SIGNS. 4. Sign = Imagens, normalmente por volta do tamanho 400x130, que são usadas na assinatura dos foruns. Dái o nome : SIGNATURE(em ingles) -> SIGN 5. Sprite Sprite são imagens em duas dimenssões muito usadas em gifs animados tais como Mário Sf etc.. 6. PSD's = São arquivos do Photoshop, que permitem visualizar como foi feito um trabalho.1 ponto
-
1 ponto
-
Movido para area correta. "Mapping > Pedidos e Dúvidas" Atenciosamente, Stigal.1 ponto
-
(Pokemon) Pokemon Venetta
Eugenio123 reagiu a BrunooMaciell por um tópico no fórum
oque nao entendi direito =s ??1 ponto -
(8.60) Global FULL Dedicado
TibiaWorld reagiu a Pkworld por um tópico no fórum
na verdade nao, frees tem varias oportunidades e respais novos espalhados por Thais, Carlin, Kazz..1 ponto -
Olá, meu nick é iuniX e vou dar uma introdução sobre como irão funcionar as aulas. Como irão funcionar? Serão bem simples, aulas de na média 30 minutos (Talvez mais, dependendo de como estiver rolando). Duas vezes por semana, num horário que eu irei decidir com os alunos de tal turma e serão no TeamSpeak3 do XTibia. O que elas irão abordar? Tudo, desde a simples syntax de Lua até Lua.socket, POO e algumas bibliotecas uteis. Como me inscrever? Primeiro de tudo, você deve ler as regras e se inscrever nesse tópico Duvidas/Criticas/Sugestões Qualquer dúvida, critica ou sugestão, poste nesse tópico. Ficarei feliz em atender todos.1 ponto
-
[Encerrado] Bike Sytem Pda .... Vip
iranielkyuubi reagiu a Slicer por um tópico no fórum
vai em creaturescripts/scripts/login.lua e acha essa parte.. elseif getPlayerStorageValue(cid, 5700) > 0 then --bike doChangeSpeed(cid, getPlayerStorageValue(cid, 5700)) if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1394}, -1) else doSetCreatureOutfit(cid, {lookType = 1393}, -1) end troca isso.. doChangeSpeed(cid, getPlayerStorageValue(cid, 5700)) por isso.. doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, 500)1 ponto -
[GESIOR] VictorWEBMaster 2019v
rafaelmca20013 reagiu a skyofdeus por um tópico no fórum
Cara, meu server esta online, e la emcima fica assim "SERVER OFFLINE" e nao sai.... Como arruma isso manin ?1 ponto -
[Erro?] Otserver Não Fica Online.
mikaeljhon reagiu a titomelbs por uma questão
Então galerinha do xtibia, não sei por que ou oque eu tenha feito para isso acontecer mass, simplesmente meus otservers não ficam mais online. Explicando melhor: Eu troco IP certinho no Config.lua tudo certinho, hospedo o IP no no-ip.com que no caso foi o "baiakroxzaoem.servegame.com" . a principio o executor prompt trabalha normalmente aparece: mass, quando eu entro com meu IP no Multi ip changer e tento acessar o account manager ou minha conta (a do administrador) aparece aquela tela como se o otserver estivesse offline. não sei se pode ajudar, mais tenho Skype e um dia um amigo meu me disse que skype fecha as portas dos otservers, se alguém puder ajudar nesse problema, não acredito que seja o skype, mais algo de errado deve ter ai né rs.1 ponto -
1 ponto