Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/07/16 em %
-
Pokemon Dash Evolution ~> Projeto Comunitário <~
justBring e 2 outros reagiu a Lordbaxx por um tópico no fórum
Já que quer tanto ajuda por que não libera as sources? Sempre inventam desculpas em relação á isso só que a maioria que vai usar o servidor vai pegá-lo pronto de qualquer forma com ou sem source, você tem é que liberá-las para que possam estudá-las e quem sabe ajudar você no desenvolvimento futuro totalmente com o uso do código aberto.3 pontos -
PokeKalos Sprites Official Project
Josegvb e um outro reagiu a MuriloCavalcantti por um tópico no fórum
Sinceramente, achei desnecessário criar o tópico sem conteúdo!2 pontos -
PokeKalos Sprites Official Project
samlecter e um outro reagiu a Avronex por um tópico no fórum
Não é criticando nem nada, nao me entenda mal, mas por que criar um tópico com praticamente nada? Por que nao esperou quando pudesse postar pra poder criar o tópico?2 pontos -
Eae XTibianos, hoje venho liberar à vocês a base PDA By Bolz, que tinha achado aqui no meu PC, com uns pokémons e tal... Bom, então aqui vai as informações: Menu: ├ Informações; ├ Erros/bugs; ├ Sistemas básicos; ├ Prints; ├ Download; └ Creditos. - Informações Básicas - - Prints do Servidor - http://imgur.com/a/FKu3y - Erros/Bugs - - Sistemas básicos - - Downloads - Servidor + Client (Google Drive): Scan: - Creditos - Eu - Bluester brun123 Bolz Slicer AnnaFeeh Drazyn Zipter98 Se tiver mais alguém, me avisem. Bom, é só isso, até a próxima.1 ponto
-
[Gesior ACC] Shop System V 1.1
Sirarcken reagiu a Administrador por um tópico no fórum
1 ponto -
[Pokemon] Servidor Skyfall - Completo
Josemir rosendo reagiu a Gabrieltxu por um tópico no fórum
Conteudo Retirado.1 ponto -
Para aumentar a frequência que o pokemon usa a passiva é só modificar essa parte do código: Ex: ["Shiny Scizor"] = 45, Para ["Shiny Scizor"] = 50, E para aumentar o dano da passiva é só modificar o f = da tabela do pokémon. Ex: passive1 = {name = "Helix", level = 250, cd = 25, dist = 10, target = 1, f = MODIFICAR AQUI, t = "bug"},1 ponto
-
Private Hunting - Sistema
EddyHavaiano reagiu a Skulls por uma questão
Acredito que seja só acrescentar isso logo depois do onUse: doPlayerRemoveItem(cid, itemid, quantidade)1 ponto -
O problema, é que mesmo o seu pc sendo 64bits, se for global o mapa, pode travar bastante dependendo da sua RAM Tente esse video1 ponto
-
A partir do 1.x, com o banco de dados sendo MySQL e não havendo account manager é preciso instalar o banco de dados e criar a conta apartir dele (o site é uma interface). Eu desconheço um servidor que seja fácil/rápido de iniciar como os de antigamente. Mas nem é tão difícil1 ponto
-
Cara, preciso de ajuda com isso KKKKKK mas vlw dani ^^1 ponto
-
Cara, eu tenho uma função que eu sempre uso pra remover qualquer coisa, inclusive baseada no comando /r. Usando ela funciona com certeza, mas deveria ter um jeito mais simples. function doRemoveThing(cid) local toPos = getCreatureLookPosition(cid) param = nil if(isInArray({"full", "all"}, param:lower())) then return doCleanTile(toPos, false) end local amount = 1 toPos.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local tmp = getThingFromPos(toPos) if(tmp.uid ~= 0) then if(isCreature(tmp.uid)) then return doRemoveCreature(tmp.uid) else return doRemoveItem(tmp.uid, math.min(math.max(1, tmp.type), amount)) end end toPos.stackpos = STACKPOS_TOP_FIELD tmp = getThingFromPos(toPos) if(tmp.uid ~= 0) then return doRemoveItem(tmp.uid, math.min(math.max(1, tmp.type), amount)) end toPos.stackpos = STACKPOS_TOP_CREATURE tmp = getThingFromPos(toPos) if(tmp.uid ~= 0) then return doRemoveCreature(tmp.uid) end for i = 5, 1, -1 do toPos.stackpos = i tmp = getThingFromPos(toPos) if(tmp.uid ~= 0) then if(isCreature(tmp.uid)) then return doRemoveCreature(tmp.uid) else return doRemoveItem(tmp.uid, math.min(math.max(1, tmp.type), amount)) end end end end1 ponto
-
Putz... Então o problema eh na source msm. Soh n sei como faz pra consertar, pq n mexo com source...1 ponto
-
Private Hunting - Sistema
EddyHavaiano reagiu a Caronte por uma questão
Vá em actions/scripts e adicione isto: local position = {x = 123, y = 456, z = 7} local templepos = {x = 123, y = 456, z = 7} local tempo = 10 function onUse(cid) doTeleportThing(cid, position) doCreatureSetStorage(cid, 5834, 1) addEvent( function() doTeleportThing(cid, templepos) doPlayerSendTextMessage(cid, 22, "Seu tempo acabou, e foi transportado de volta ao templo!") doCreatureSetStorage(cid, 5834, -1) end, 1000 * tempo) return true end agora vá em actions.xml e adicione isto: <action itemid="1234" event="script" value="arquivo.lua"/> mude o itemid, para o id do seu item... Importante, para que os players não desloguem e deixem de ser teleportados: vá em creaturescripts/scripts/login.lua Abra o arquivo e depois de: function onLogin(cid) adicione: if getCreatureStorage(cid, 5834) == 1 then doCreatureSetStorage(cid, 5834, -1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end1 ponto -
Me adiciona no skype, eu ACHO que encontrei a lib e include que precisa, mas não tenho muita experiencia com o Visual Studio xD (skype: caosjrderpson) Atenciosamente, ElderZard. @ Fail, nem deu certo :x1 ponto
-
Pokemon Dash Evolution ~> Projeto Comunitário <~
Drakopoulos reagiu a Refe por um tópico no fórum
Uma pre-view da update:1 ponto -
Editor de Sprites? Object builder!
chateadoagr reagiu a felzan por um tópico no fórum
Link do Object Builder Em relação as versões, tem uma recompensa pra quem fizer funcionar na 10.76, então ainda não tem.1 ponto -
Remere's Map Editor 7.0 - 10.80
Silveira Crtba reagiu a Administrador por um tópico no fórum
Changelog Versão 10.76 adicionada (NOVO) Suporte para versões 10.10+ Live casts Ultima versão do github Informações Precisa do Microsoft Visual C++ 2013 - 32/64Bits: Redistributable Package Não tem suporte para Windows Xp VERSÃO ATÉ 10.80 ! Versão até 10.71 rev 151 + modificações Versão até 10.55 rev 142 + modificações1 ponto -
Categoria: Download de SPRITES Créditos: PokeXGames - PXG Conteúdo: Cliente da PXG referente a data 22/03/2015 descompilado. OBSERVAÇÕES: O cliente deve ser aberto utilizando o OBJECT BUILDER, onde as opções EXTENDED e TRANSPARENCY devem estar marcadas. FOTOS: - DOWNLOAD: MediaFire SCAN: Virustotal1 ponto
-
[Resolvido] [Pedido] Heavy Slam e Passiva Iron Body
jeanflamengo reagiu a zipter98 por uma questão
Já terminei faz tempo, só estou esperando você avisar que criou o item. Certamente não ficou igual a PxG, porque, caso tenham usado esse método, deve ter demorado um bom tempo para achar o tempo ideal para representar um pulo "perfeito" (como o da gif). E, sinceramente, não estava com paciência de ficar procurando tal tempo. Função de pulo: function jump(cid, rounds) doChangeSpeed(cid, -getCreatureSpeed(cid)) doCreatureSetNoMove(cid, true) for i = 1, rounds do addEvent(function() if isCreature(cid) then local pos = getThingPos(cid) local item = doCreateItem(ITEM_INVISIVEL, 1, pos) addEvent(function() local it = getTileItemById(pos, ITEM_INVISIVEL).uid if it > 0 then doRemoveItem(it) end if i == rounds then doRegainSpeed(cid) doCreatureSetNoMove(cid, false) end end, rounds == 1 and 200 or (i + 2) * 100) end end, i * (rounds == 1 and 200 or 100)) end end Use jump(cid, 1) para um pulo de altura "1" (como o causado pelo Earthquake), e jump(cid, 2) para pulos como do Heavy Slam. Código do Heavy Slam: local config = { areas = {area1, area2}, --Áreas, em ordem de execução. effect = 160, --Efeito. combat = NORMALDAMAGE, --Elemento. } 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 jump(cid, 2) addEvent(function() for i = 0, #config.areas - 1 do addEvent(function() local pos = getPosfromArea(cid, config.areas[i + 1]) doMoveInArea2(cid, config.effect, config.areas[i + 1], config.combat, min, max) for j = 1, #pos do local pid = getTopCreature(pos[j]).uid if ehMonstro(pid) then doPushCreature(pid, cid) elseif isSummon(pid) then local master = getCreatureMaster(pid) if isSummon(cid) then if getPlayerStorageValue(master, 52480) >= 1 and getPlayerStorageValue(master, 52481) >= 0 then local masterCid = getCreatureMaster(cid) if isDuelingAgainst(masterCid, master) then doPushCreature(pid, cid) end end else doPushCreature(pid, cid) end end end end, i * 230) end end, 650)1 ponto -
[Tutorial] Básico sobre Lua
titon reagiu a JuniorPavani por um tópico no fórum
ATENÇÃO! Este tutorial foi feito pelo tibiaa4e, portanto os créditos são 100% dele! Parte I – Básico do básico de Lua Começaremos por LUA porque é uma linguagem simples, que não precisa declarar variáveis e tudo mais. Aqui não explicarei as funções do otserver e sim como montar um script. Nessa primeira parte usarei o Português Estruturado que sinceramente não é útil quando você aprende a sintaxe da linguagem, porém é ótimo para você que está começando aprender o que está fazendo e não só copiando e colando. LEMBRANDO QUE PORTUGUÊS ESTRUTURADO NÃO É UMA LINGUAGEM É APENAS UM JEITO DE VOCÊ ENTENDER A SINTAXE DAS LINGUAGENS. Começando vamos explicar a sintaxe de um script bem básico mesmo. Aquele script que quando você da use em 100 gps ele vira 1 platinum coin Citar Em português estruturado ele ficaria assim : Citar Com português estruturado da para entender essa action Agora da para explicar melhor a estrutura de um arquivo lua de actions : ► Essa parte é a que diz ao servidor que essa função vai se ativar quando o player usar o item indicado no actions.xml. No caso é a função aoUsar ou seja quando o player clicar com o direito nesse item irá acontecer algo. ► O SE é uma condição, se estiver tudo certo dentro dele ele faz a condição contida no caso o id (numerodoitem) tem que ser 2148 (Gold Coin) e tem que ser do tipo 100 (No caso de itens juntáveis o tipo é a quantidade), faça remova ele e adicione UM item 2152 (platinum coin). ► Senão ou seja, se o item não for 2148 ou não ter tipo 100, não retorne ao começo do script e finalize. Espero que essa parte tenha esclarecido um pouquinho mais sobre actions. Agora vou explicar um pouco mais sobre algumas condições e suas sintaxes. Sintaxe do IF, Else e Elseif. A condição if de longe é a mais importante de todas as programações e é essencial para um script um pouco mais complexo ou para evitar que você faça 200 scripts para certas funções (comida do tibia por exemplo). Vocabulário do tio Ta4e Citar Única coisa que o lua pede é que cada item tenha um end para cada if colocado tenha um end, você também tem que entender a questão do if encadeado que será tema da próxima aula aqui. Mais para ela se tem que saber o básico de um If normal. Esse é o script anterior com adição de uma condição que se o player tiver 100 platinum coin ele se transforme em uma crustal coin. function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 2148 and item.type == 100 then doRemoveItem(item.uid,1) doPlayerAddItem(cid, 2152, 1) elseif item.itemid == 2152 and item.type == 100 then doRemoveItem(item.uid,1) doPlayerAddItem(cid, 2160, 1) else return FALSE end return TRUE endVocê percebe que eu alinhei o if e elseif a seu end, isso chama-se Estruturação, isso é muito importante já que para achar um erro será muito mais fácil E fica mais organizado seu script Você percebe que o IF tem um end no final da sua cadeia, pois todo IF tem que ter um end porém o ELSEIF se enquadra dentro do IF. O ELSEIF ajuda pois você diminui linhas de scripts e serve para outras funções mais avançadas que serão vistas nas próximas aulas. Lembrando também que a função toda função também tem seu END, isso ajuda no caso de você querer colocar duas funções no mesmo script (muito usado em movements). IF Encadeado O if encadeado ou cadeia de if, indica funções pouco mais complexas que o if solitário, porém não é nenhum bicho de 7 cabeças, se você fazer a estruturação do script. Aqui vai o script de exemplo, é um script muito mais complexo do que os do gps Citar Esse script é o que eu uso para minhas quest. Esse é um ótimo exemplo de if encadeado. Perceba que ele está estruturado. Claro que colorido é muito simples identificar cada else e end Agora vou explicar a sintaxe. ►A primeira parte pede que o uniqueid (é um numero especial usado apenas uma vez no mapa inteiro), seja 2300. ►Essa parte do queststatus é uma variável que será explicado a parte ►Esse If, checa se o player tem o valor da variável listada acima, senão ele manda a mensagem o “the chest is empty”. ►Esse outro if checa se o player tem a capacidade 29.50, senão ele manda a mensagem “You have found a demon helmet. Weighing 29.50 oz it is too heavy”. ►Chama-se cadeia de if porque as funções em preto só serão executados se todos os IFS forem verdadeiros, se apenas um não for ele já acusa o erro. Seria mais ou menos como tirar um RG Se você tiver Certidão de nascimento faça Se você tiver Foto 3x4 faça Se você tiver o papel faça Criar RG Senão pegue o papel no balcão Senão tire uma foto 3x4 Senão tirei certidão primeiro ,já que você não existe Perceba que você terá que ter tudo isso para fazer o RG senão tiver você não consegue tirar ►Voltando ao script perceba que todos tem seu respectivo end, isso é importantíssimo Variáveis Variáveis é uma parte da memoria na qual se guarda um valor ou informação, em outras linguagens elas tem tipos como de números inteiros, reais ou de letras, porém em lua não existe isso. O que facilita muito nossas vidas as variáveis são maneiras ou jeitos de você fazer scripts para outras pessoas ou por pura preguiça mesmo... São extremamente necessárias em scripts grandes na qual um item de mesmo id é repetido muitas vezes, e talvez depois seja necessário muda-lo Lembra do script anterior da quest a parte que da questatus Citar A quest status é uma variável, que pergunta ao servidor se o player tem o valor nele Se não tiver faça, ou seja -1 é igual a negativo ou negação, no caso se o programador quisesse que ele tivesse colocava 1 Essa parte é bem simples de se entender, já que variáveis servem para simplificar a vida de não programadores, porém deixam seu servidor mais pesado, não é coisa grande, porém como já disse a variável ocupa memoria, em torno de 3kb cada uma, mais em um otserver básico possuem muitas variáveis Elas podem ser indicadas em qualquer parte do script, e elas sempre recebem dados ou perguntam. Pode se fazer cálculos nas variáveis ou usar outras variáveis dentro dela sem problema nenhum. Sinais Matemáticos e de comparação Aqui vai uma coisa que confunde muita gente : ►= - Faz o item anterior receber algo Exemplo : gold = 2148 ►== - Verificação. É para checar Exemplo : if item.itemid == 2555 then ► Os sinais matemáticos são +, -, / e * . ►E como toda linguagem não existe , entre números 1,5 é 1.5 virgula é só para separar variáveis ►Para se checar pode ser usar == (igual a ), >= (maior ou igual a ), <= (menor ou igual a ) o sinal de diferente é agora com certeza é ~=. ►Pode se calcular os itens dentro de variáveis ou até dentro de funções. IF com varias condições Você já deve entender um pouco mais de scripts portanto agora colocarei scripts cortados Vamos a um exemplo : if item.itemid == 2694 then if item2.itemid == 1381 or item2.itemid == 1382 or item2.itemid == 1383 or item2.itemid == 1384 then doRemoveItem(item.uid,1) doPlayerAddItem(cid,2692,1) else return 0 end Nesse caso o item.itemid é aqueles itens que você pode dar use with (vara de pescar por exemplo) e o item2.itemid é o local a ser clicado. Então seria Se o item for 2694 e o segundo item for 1381 ou 1382 ou 1383 ou 1384 faça. Ou seja qualquer um desses itens é considerado válido. Essa é a básica desse tipo porém pode-se fazer umas mais complexas como essa debaixo que não existe em actions e é só para explicar : Citar Nesse caso o player teria que usar o item 1381 e o 1382 juntos ou o 1383 e 1384 juntos. É usado em movements, npcs e talk actions muito frequentemente. Parece fácil mais da para se confundir facinho ai. Quando usar IF e quando usar ELSEIF Essa parte é a final desse primeiro tutorial e serve apenas para dar uma idéia de como melhor seu script básico Como eu já disse o Elseif é uma é a junção de else + if e ele só vai executado depois se o if primário for falso. Ou seja ele é usado quando apenas uma das condicionais vai ser verdadeira , eu uso muito isso em npcs para o quests de npcs, mais podemos mostrar uns exemplos em actions. Já o if sempre será checado, bom para os ifs encadeados já que eles tem todos estarem certos ou errados. Exemplo de If e Elseif junto Citar ►Perceba que nesse caso é usado o elseif porque é impossível que o mesmo bau tenha o mesmo uniqueid (Como disse anteriormente cada uniqueid é usado apenas 1 vez no mapa e um item só tem 1 uniqueid). Então ou é um ou é outro. E ELSEIF não tem end. ►Nesse caso todos tem que ser reais para poder se executar o script, então é necessários ser if e ter seus ENDS. Comentários Para inserir comentários na linguagem lua é necessário adicionar – 2 hifens. Pode ser em qualquer parte do script (pelo amor de deus não coloque dentro de um if) normalmente usado para explicar o script ou colocar créditos Siglas e Dicionario id – Identificador ou seja no caso de otserver é o numero do item para o tibia. cid – Creature Id :Identificador da criatura, no caso a criatura que executa a ação, no caso o player. uid – Unique Id : Identificador único usado uma vez no mapa (em algumas funções ele serve como para indicar um id. actionid – Identificador de ação pode ser usado varias vezes no mapa, usado principalmente para aquele chão que afunda perto do DP.1 ponto -
seguinte fiz um script pra items solidos pra corrigir o problema que os pokemons entram em paredes etc nao sei se tinha uma formula melhor mais fiz bem simples assim fica 100% segue o codigo blockwall.lua na tag no arquivo movements.lua fica assim <movevent type="StepIn" itemid="11777-11785;1533-1542;11809-11811; 5303-5304; 1111-1119; 873-878; 2703; 2767" event="script" value="blockwall.lua"/> no caso algum pokemon tentar subir no item que estiver em itemid ele impede assim evita os bugs - EDIT - tbm corrige o problema que um usuario tinha sobre entrar voando em casas eu nao consigui fazer isso mas se ele continuar com o problema certeza q vai resolver - EDIT 2- Consegui arrumar assim pokemons fantasmas passam normalmente1 ponto