Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 09/29/13 em todas áreas

  1. Galera, vou pedir por meio dessa mensagem que vocês tenham um pingo de consciência, todos que atendem na fábrica (Luck, One e eu) adoramos fazer scripts, nada contra a pedidos e etc. Mas tem gente que não entendeu o verdadeiro intuito da fábrica. A ideia não é vocês terem 3 escravos que façam qualquer script ao seu bel prazer, a ideia é que vocês tenham sim o seus scripts em mãos mas que logo após isso não fiquem pedindo ajustes, salvo se for erro do autor do script, mas se você faz um pedido o mínimo que se espera é que você tenha a ideia certa na cabeça. É deveras chato olhar pro tópico e ver que alguns usuários (não citarei nicks) ficam floodando o tópico com conversas e pedidos sem sentido algum quebrando todas as regras do tópico. Respeitem as regras de dois pedidos de vez, e evitem ao máximo ficarem pedindo ajustes sem sentido nos scripts, venham com a ideia certa na cabeça para que nós possamos fazer o seu script de uma vez só, vai ser bom pra gente e bom pra vocês também. Obrigado pela compreensão.
    3 pontos
  2. Introdução ao OOP (Object-Oriented Programming) "A orientação a objetos é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos." Traduzindo, cada coisa que está presente em um programa é considerado um objeto. Exemplo disso são os jogos. Os personagens são objetos, podendo ser da classe NPC, Character, Monster... Mas o que é classe e objeto? - Definições Existem algumas definições essenciais para entender a orientação a objetos. As principais são classe, objeto, método e atributo. Classe: Podemos dizer que classes são grupos com características inicialmente iguais. Exemplo, na vida real, temos as classes "Humano", "Pássaro", "Inseto", etc. Cada classe tem seus membros, que são os objetos, suas características, que são os atributos, e suas ações, que são os métodos. Objeto: Cada membro das classes é chamado de objeto, por exemplo, na classe "Humano" existem os objetos eu, você, seu amigo, etc. Dá pra dizer que cada pessoa é um objeto da classe "Humano". Atributo: São as características da classe. Exemplo, na classe "Humano" temos algumas características como "Nome", "Altura" e "Idade", que variam de indivíduo para indivíduo, ou em programação, que variam de objeto para objeto. Método: São as ações que os objetos de uma classe podem realizar. Exemplo, objetos da classe "Humano" podem realizar ações como Beber, Comer, Correr. Em programação, cada ação dessa seria uma função ligada à classe, que é executada por um objeto. - OOP em Lua Lua, na verdade, não é uma linguagem orientada a objetos. Porém, possui uma biblioteca com artifícios que simulam isso, que são os meta-métodos e meta-tabelas. A principal função dessa biblioteca é a setmetatable. Ela transforma uma tabela normal em uma "tabela-objeto". - Criando classes: Para deixar mais claro, vamos criar uma tabela normal. Humano = {} OBS: Em orientação a objetos, sempre use Camel Case, que é deixar os nomes de classes e métodos iniciando com letra maiúscula. É só pra deixar o código mais bonito mesmo. Agora que criamos a tabela Humano, vamos colocar alguns atributos (características) nela: Humano = { nome = "", altura = 0, idade = 0, } Agora temos uma classe Humano com os atributos nome, altura e idade. Agora vamos criar um objeto dessa classe. Para isso, vamos criar uma função que transforma essa tabela em uma meta-tabela. Para isso, usamos a função setmetatable(table, metatable): function Humano:New(nome, altura, idade) local obj = {} obj.nome = nome obj.altura = altura obj.idade = idade return setmetatable(obj, {__index = self}) end Mas o que fiz ali? Simples. Peguei os parâmetros da função, coloquei dentro da tabela obj e depois criei uma meta-tabela. O que significa aquele self? Bom, o parâmetro self está implícito, então fica meio confuso. Você poderia fazer assim: function Humano.New(self, nome, altura, idade) No lugar de: function Humano:New(nome, altura, idade) Ou seja, aqueles : (dois pontos) são para não precisar declarar o self. O self serve para retornar o objeto da classe. Fazendo {__index = self}, você consegue acessar os atributos direto do objeto. Você entenderá isso um pouco mais pra frente. - Criando métodos: Vamos agora criar métodos, ou seja, o que os objetos da classe conseguem fazer, ou melhor, as funções que eles conseguem executar. Criaremos um método que faz a altura do objeto da classe Humano aumentar. Traduzindo, a pessoa cresce. function Humano:Grow(amount) amount = amount == nil and 1 or amount self.altura = self.altura+amount end O que fizemos ali? Primeiro, criamos um método ligado à classe Humano, chamado Grow (crescer em inglês). Depois, fizemos o seguinte para não dar erro: amount = amount == nil and 1 or amount. Ou seja, se o amount não for declarado, ele passa a valer 1. Depois, pegamos o atributo altura do objeto utilizando self.altura (lembra do self?) e acrescentamos o amount. Ou seja, se amount = 3, acrescentará 3 na altura do objeto. Simples, não? OBS: Métodos criados ligados à uma classe só podem ser executados por objetos dessa mesma classe! Se você tem um objeto da classe "Inseto", você não pode utilizar nele os métodos da classe "Humano". - Criando objetos Agora que você sabe criar classes e métodos, você pode criar objetos. É super simples, só fazer assim: hi = Humano:New("Manoel", 1.77, 16) Pronto, agora você tem um objeto na variável hi com o nome Manoel, altura de 1.77 e 16 anos. E como executar métodos nesse objeto? Simples também, veja: hi:Grow(0.34) No caso, o objeto da variável hi vai ter a altura aumentada em 0.34. E como modificar atributos do objeto sem precisar de funções? Outra coisa muito simples: hi.altura = 1.80 Isso fará a altura do objeto da variável hi ficar em 1.80. - Percepções Agora que você já sabe uma base de orientação a objetos, você perceberá que quando você usa uma função como string.lower(str), você está usando orientação a objetos, com um método da classe string. local a = "Batata" string.lower(a) é o mesmo que a:lower() Por que? Porque string é uma classe, lower é um método, e o método é string:lower(). Lembra do self implícito? - Final Bom galera, muito obrigado por lerem esse tutorial. Fiz ele dedicado ao meu amigo Manoel Neto. Utilizei como base os conhecimentos passados pelo meu mestre Oneshot. Quaisquer dúvidas e/ou sugestões, podem postar aqui no tópico. Proibido postar em qualquer outro fórum de Open Tibia brasileiro.
    2 pontos
  3. Bom estou fazendo este post para analisar o jogo já que não tem isso no fórum e porque não tenho nada para fazer, só que não vou falar muito. SUMÁRIO: Informações gerais Personagens Jogabilidade Gráfico Notas Opnião Para começar o jogo é rodado em volta de 3 personagens . Cada um com diferentes personalidades,habilidades e aparência é óbvio . As Habilidades de um personagem pode ser mudada de acordo com o que você faz com ele só que não podem ser mudadas totalmente. São eles os personagens : Michael De Santa,Franklin Clinton,Trevor Philips. AS PERSONAGENS: O GRÁFICO: NOTAS: Algumas notas da internet Polygon 9.5 de 10 EDGE 10 de 10 GamingTrend 95 de 100 AusGamers 9.8 de 10 The Escapist 3.5 de 5 Joystiq 4.5 de 5 gamesTM 10 de 10 Metro GameCentral 10 de 10 VideoGamer 10 de 10 Edge Magazine UK 10 de 10 Hardcore Gamer 5 de 5 Official Xbox Magazine UK 10 de 10 Official Xbox Magazine 10 de 10 Giant Bomb 5 de 5 Destructoid 9 de 10 OPNIÃO: Melhor GTA que eu já joguei eu acho que melhor jogo também. Obrigado por ler tudo . COMPRE GTA V : Melhor entrega na minha opnião CLIQUE! VIA SARAIVA
    2 pontos
  4. Oneshot

    Fábrica de Scripts

    function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid == 2157 then if itemEx.type == 100 then doTransformItem(itemEx.uid, 7762, itemEx.type) else doPlayerSendCancel(cid, "You need 100 gold nuggets.") end else doPlayerSendCancel(cid, "You can only use the battle hammer in gold nuggets.") end end
    2 pontos
  5. Oneshot

    Fábrica de Scripts

    local PETS = { ["Rat"] = {0, 250}, } function onUse(cid, item, fromPosition, itemEx, toPosition) if getTileInfo(getCreaturePosition(cid)).protection then return doPlayerSendCancel(cid, "Você não pode invocar dentro de zonas de proteção.") end if getCreatureStorage(cid, 11548) > os.time() then return doPlayerSendCancel(cid, "A energia espiritual não é suficiente. Aguarde ".. getCreatureStorage(cid, 11548) - os.time() .." segundos.") end local summons = getConfigValue("maxPlayerSummons") if #getCreatureSummons(cid) > summons then return doPlayerSendCancel(cid, "Você já invocou criaturas o bastante.") end local tmp = nil for _, uid in ipairs(getCreatureSummons(cid)) do if PETS[getCreatureName(uid)] then tmp = uid end end if tmp then return doPlayerSendCancel(cid, "Sua criatura já foi invocada.") end for name, level in pairs(PETS) do if getPlayerLevel(cid) > level[1] and getPlayerLevel(cid) <= level[2] then local monster = doCreateMonster(name, getCreaturePosition(cid)) if doConvinceCreature(cid, monster) then doCreatureSay(cid, "Go, " .. name .. "!", TALKTYPE_ORANGE_1) doCreatureSetStorage(cid, 11548, os.time() + 30) doSendMagicEffect(getCreaturePosition(monster), 2) end break end end return true end Alguém pediu algo sobre summon, sem a função do summon voltar, eu fiz um do zero, identado e funcional. Abraços.
    2 pontos
  6. Kempaichi

    Arquivo lua

    Oque contem em um arquivo .lua de tibia 8.10? bom fiz um resumão de cada um das variáveis que contem em um arquivo .lua, e seu significa cada uma traduzido para português brasileiro. Prefiri colocar dentro de um spoiler, acho que facilita mais para o entendimento: [ spoiler ][ /spoiler ] Bom espero que seja de utilidade para consultas
    2 pontos
  7. meubk

    Exp Por Hit V4.0

    Instalação Primeiramente abra a pasta de seu ot, e procure pelo arquivo config.lua e procure por essas 2 linhas : experienceStages = false rateExperience = 50 se o experienceStages tiver ativado mude para false, pois o Stages é configurado no próprio script, e é muito importante o rateExperience tiver como 0, exemplo: experienceStages = false rateExperience = 0 agora entre na pasta creaturescripts/scripts e crie um arquivo lua, chamado exphit.lua e cole o seguinte código: para versões mais antigas como 8.54, 8.6 use : para versões mais novas como 9.8 : na mesma pasta procure pelo arquivo login.lua, e em cima de return true, adc a seguinte linha: registerCreatureEvent(cid, "ExpHit") volte na pasta anterior creaturescripts, e procure pelo arquivo creaturescritps.xml e cole as 2 tags: <event type="statschange" name="ExpGain" event="script" value="exphit.lua"/> <event type="combat" name="ExpHit" event="script" value="exphit.lua"/> para configurar a exp, que era configurada no config.lua está no começo do arquivo exphit.lua , e as configurações da party tbem, dos anéis, e até pode ser usado stages agora, segue abaixo o exemplo: -- CONFIGURAÇÕES DE EXPERIENCIA -- useStages = false -- Usar sistema de Stages , true/false premiumMultipliqueExp = 2 -- Players Premiums terão exp multiplicada, caso não querer deixe 1. rateExp = 50 -- Exp caso não for usar stages. local stages = { -- ["DELEVEL-ATELEVEL"] = EXP, (OBS: NUNCA REPETIR O MSM NUMERO, SEMPRE COLOCAR UM A MAIS.) ["1-50"] = 50, ["51-100"] = 45, ["101-150"] = 40, ["151-200"] = 35, ["201-250"] = 30, ["251-300"] = 25, ["351-400"] = 20, } ultimateExp = 15 -- exp que vai usar caso o level do player não tiver mais na tabela . -- CONFIGURAÇÕES DA PARTY partyPorcent = 40 -- Quantos Porcento da exp vai para os membros da party levelBlockParty = 1000 -- Diferença Maxima de Level permitida para membro da party ganhar exp. expShareRadiusX = 30 -- Distancia maxima permitida no eixo X para membro da party ganhar exp. expShareRadiusY = 30 -- Distancia maxima permitida no eixo Y para membro da party ganhar exp. expShareRadiusZ = 1 -- Distancia maxima permitida no eixo Z para membro da party ganhar exp. -- CONFIGURAÇÕES DE RINGS -- local rings = { -- [ID DO ANEL] = EXP MULTIPLICADA POR X EXP. [3048] = 2, [3049] = 4, [3050] = 6, } -- FIM DAS CONFIGURAÇÕES ---- Log V2.0 : Log V3.0 ( 03/02/2013 ) : Log V4.0 ( 12/11/2013 ) :
    1 ponto
  8. beddy

    Tibia Harry Potter - By Beddy

    HARRY POTTER ONLINE - by BEDDY Servidor TIBIA HARRY POTTER Alguma vez voce pensou que poderia ser um aluno de HOGWARTS? Agora é sua chance! Venha para o Harry Potter Online e fassa amigos, pegue varinhas, voe de vassoura e muito mais! Estou disponibilizando o servidor pois meu projeto do Harry Potter Online foi por agua abaixo, por causa de um cara que conseguiu rippar as sprites do quilante... Meu projeto já estava 90% andado, mas agora ferrou-se tudo. Então estou mandando a parte do meu projeto que está pronta, porem com sprites do quilante (Já ESTA TUDO ADAPTADO) - O QUE VOCE VAI TER QUE FAZER: Ajustar o servidor... Já estou te dando quase tudo de mao beijada, agora é só fazer alguns ajustes. Como: adicionar NPC, fazer action de compra de TOGA, e coisas simples! Bem.. é isso aproveitem! Distro Totalmente Estavel Sem bugs Sem virus Sem motherfuckingthings! Apenas alegria! -O QUE TEM NO SERVIDOR: •1 Classes: Aluno •O player ao upar um level, ganha "POINTS" para trocar por LIFE OU MANA assim torna o jogo mais sensivel •Mapa Proprio •JA EXISTE VIP E DONATES - AJUSTE PARA O NESCESSARIO -O QUE FALTA NO SERVIDOR: •AJUSTAR LIFE/HIT/LOOT DE MONSTROS - AJUSTAR OS SPRITES DAS HORCRUX (MAS O SISTEMA JA ESTA FUNCIONANDO CORRETAMENTE) -SISTEMAS: • Vassoura • Preparar poçoes (voce pega o axe [iD:2386], usa-o naqueles crystais que estaão espalhados pelo servidor, e com o crystal na backpack, use a magia "preparar", isso vai fazer com que seu caldeirão tenha carga,dai voce poderá dar USE no vial em cima do caldeirão para terminar sua poção!) -SITE HTML INCLUSO! DOWNLOAD: http://depositfiles....files/csh0uuxil http://depositfiles....files/csh0uuxil (INCLUSO: SERVIDOR, CLIENTE, SITE) SCREENS: REP+ PRA MIM POW! SCAN: Por Kaspersky PRO https://www.virustotal.com/file/c5b9fb7a023599d3be295eff034717e55d6e428753164d8377bc79777e34f722/analysis/1342184200/ Por Virus Total CREDITOS: Beddy Erickrusha - fez a parte do mapa do entorno de HOGWARTS,obrigado man!
    1 ponto
  9. Bem galera ae esta o update Global Baiak Global Baiak Yurots V3.3 Oque Mudou ? Mudou a City ta 100% 8.5 Foi Arrumada As Houses. Vende Items 8.54! Novos Items Novos Outifits Novas Hunts E Muito Mais... Global Baiak Yurots V3.7 Oque Mudou ? Foi Adicionada um Nova Cidade Chamada Baiak City Foi Adidionada Um Teleport no Templo Que Vai para Algumas City's Foi Adicionado Npc de Bless,Pagando Todas as Bless você nao prescisa usar aol... Foi Adicionado Uma Ilha de GM's ... Bug do Account Mananger Arrumado. Novo Executer adicionado,se o ot cai ele salva sozinhoo. E Muito Mas Estara por vim ... Global Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Dragon lord vip Foi Adicionado New Quest Baiak Super Foda !! ;D Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Global Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Global Baiak Yurots V1.1.4 Oque Mudou ? Fiz um Novo System Vip por Comando Fiz o Novo Addon do Outfit do Wayfarer Global Baiak Yurots Edited By Darlan Oque mudou ? Modifiquei o templo, totalmente Fiz novos comandos, !aol, !bless, !jail playername , !removeskull (retira sua black ou red skull por 1kk), entre outros Criei novos itens vips II! (obtidos na vip quest) Fiz quest para axe vip, star vip,club vip,sword vip,wand e rod vip Fiz uma vip II Fiz Um Castelo, onde ocorre batalhas do time Verde X Vermelho. Fiz uma Area Pvp, onde quem morrer nao perde level Fiz uma quest vip, onde se ganha a vip II E mais um amuleto vip(permite que red skull e black skull nao percam itens, funciona como aol tambem, possui 30 cargas) e tambem um item vip de sua escolha( axe,sword,club,star,rod ou wand vip.) Novos Teleports Adcionados na Vip II Monstros novos como Medusa vip II, Hydra Vip II, entre outros. Fiz uma Super Poi para vips II Vocaçoes Balanciadas Teleports Especiais [ARENA, CASTELO DO REI E HOUSE ISLAND] para level 300+ Bug Da baiak cape que nao dava ml+6, arrumado, entre outros varios bugs System Vip Como Funciona ? A Vip I é free, portanto só passa lvl 250 A Vip II é somente para quem conseguiu completar a Vip Quest, ganhara armas vip A VIp2 Compre A segunda VIp2 Falando !buyvip . Acc do God. god/god DAWLOAD http://www.mediafire.com/?95b2leuo2cicq69 Não tem vírus escanei com variós tipo de anti vírus https://www.virustot...sis/1350390234/
    1 ponto
  10. Lucasmml

    [Regras] Centro de Edições

    Área destinada exclusivamente para edição de sprites. Introdução:Para aqueles que querem descobrir as vastas possibilidades de sua sprite ou apenas deseja se desenvolver no mundo do spriting treinando através das edições ou apenas não passa de um preguiçoso nunca terminando aquilo que começa, essa é a área para todos vocês. Qualquer membro é autorizado para fazer as edições dos outros. Regras:Primeiramente por questão de organização, gostaria que se fosse criado um tópico apenas para o membro requisitar edições (e não sprites avulsas), irá funcionar como uma galeria, você cria o seu tópico e vai postando suas sprites em busca de edições. Não é necessário comentários, apenas edições (Simples/Direto). A diferença desta área para a galeria (show off) é que aqui não buscamos sprites finalizadas e muito menos feedback (opiniões) dos demais. Outras observações sobre esta área: Apenas outlines (contorno) não serão aceitos, ninguém precisa fazer a sprite por você e sim desenvolver a sua sprite. O fato de você ter editado a sprite de alguém, não significa que você se tornou o dono da sprite (e ou do seu edit). A sprite que você for postar requisitando edição deve ser de autoria sua. (Obs: Ao longo dos trabalhos, caso necessite as regras poderão ser modificadas) Atenciosamente, Lucas Melo.
    1 ponto
  11. 1 ponto
  12. SamueLGuedes

    PDA Sem lvl 1.9 (Editado Por Bolz)

    Fala galera do xtibia, hoje trago a voçes, o PDA Slicer 1.9, editado por min, eu passei um bom tempo editando ele, eu até deixei online, entrou 52 players. mais isso nao importa, oque importa e as informaçoes: • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • PrintScreen • • Download's • Servidor Pokemon Dash (editado por Bolz) client incluido na pasta do servidor. 4Shared: http://www.4shared.com/rar/WnEElQIT/PDA_Edited_by_Bolz.html MediaFire: http://www.mediafire.com/?cvm4f5bfksxjbe2 • Scan • https://www.virustotal.com/pt/file/e37c5683162d0264ee2115810c5930f196f516c240d48ce6aebd5102854baaec/analysis/1367376049/ @atualizado 05/05/2013 • Menu: ├ Ediçoes; ├ Prints; ├ Download; • Edições / Ajustes • • PrintScreen • • Download's • Server PDA Slicer editor Por Bolz v2 (client ja na pasta) MediaFire: http://www.mediafire.com/?thh05yhnc7srasn • Scan • https://www.virustotal.com/pt/file/3fd8e0702e23b1f83ce9421f2f9a3808071222d084cf77a385d03e0f3f5099fc/analysis/ Atualizado 30/05/2013 desculpe a demora, eu estava sem tempo, o servidor ja estava arrumado só faltava postar, e só tive hoje para postar. é uma pequena atualização, por isso é 2.5, e nao 3.0, é algumas correções do serv. na proxima atualização tentarei colocar pokemons da 3° geração ou, o icon system, oque tiver ao meu alcanse eu tentarei colocar. abraços. ├ Ediçoes; ├ Prints; ├ Download; └ Creditos. • Edições / Ajustes • • PrintScreen • • Download's • como pedido de alguns, eu deixei o client separado do servidor. Server PDA Edited By Bolz 2.5: http://www.mediafire.com/?ry55tjk2l4l5cow Client: http://www.mediafire.com/?nwdf2nfk9txk35f • Scan • galera eu nao consegui fazer o scan do servidor e do client, quando termina de carregar, ele diz que falhou, se alguem poder colocar o scan, eu agradeçeria muito. abraços Atualizado 24/07/2013 Iaew galera, bem eu falei que ia atualizar para v3, e ta ai, só que nao consegui colocar muito doque eu falei. por falta de espaço no client. porem eu irei começar depois dessa atualização, um novo client, leve, e com espaço, que na verdade, vai ser o client do PDA 1.9. mas eu irei tirar todas as sprites de tibia que existem nelas. e so deixarei as de pokemon. assim tera mais espaço na hora de colocar um novo pokemon. chega de falar, vamos ao que interessa: ├ Ediçoes; ├ Prints; ├ Download; └ Creditos. • Edições / Ajustes • • PrintScreen • • Download's • Server 3.0 (Media Fire): http://www.mediafire.com/?j7e112fw6gaggnj Server 3.0 (4Shared): http://www.4shared.com/rar/2CVWvjAy/PDA_Edited_by_Bolz_v3.html Client 3.0 (MediaFire): http://www.mediafire.com/?4wx5dyy6hyq8upi Client 3.0 (4Shared): http://www.4shared.com/rar/xBrGwfMy/Client_v3.html • Scan • Scan do server: https://www.virustotal.com/pt/file/125ecfbe02cb0b154769a104518100cb30fe28e5fddd58891b708a1aa7a68ab8/analysis/1374685280/ Scan do client: o scan do client eu nao consegui fazer, ele sempre trava na hora de scania, se alguem puder fazer o scan dele eu agradeço • Creditos • Slicer (pelo servidor) Brun123 (por alguns scripts, e por criar o pda) Stylo Maldoso (pelo mapa) Eu (por editar) Xtibia (por alguns scripts) OBS: comentem, e votem no enquete, abraços galera.
    1 ponto
  13. Sword Art Online (anime) - Sinopse No ano de 2022, a Realidade Virtual Massive Multiplayer RPG Online (VRMMORPG) é desenvolvida e seu primeiro jogo, Sword Art Online (SAO), é lançado. Com o equipamento Nerve Gear, um capacete de realidade virtual que estimula no usuário os cinco sentidos através de seu cérebro, os jogadores podem experimentar e controlar seus personagens no jogo com suas mentes. Em 6 de novembro de 2022, todos os jogadores ao entrarem pela primeira vez no jogo, descobrem que eles são incapazes de sair. Eles são então informados por Kayaba Akihiko, o criador do SAO, que se eles desejam ser livres, eles devem chegar ao 100º andar da torre do jogo e derrotar o chefe final. No entanto, se os seus avatares morrerem no jogo, seus corpos também morrerão no mundo real. Fonte: Wikipedia, texto adaptado. Slayer Art Online - Propostas Nós da equipe Okami Games iremos proporcionar á todos os jogadores uma ótima experiência que retratará o anime Sword Art Online o mais fielmente possível. Os jogadores poderão fazer várias coisas que são vistas no anime, como caçar solo ou em grupo, realizar várias quests, utilizar cristais (como o de teleport), forjar suas próprias armas e equipamentos, preparar alimentos melhores, participar de guildas, comprar sua própria casa, duelar com outros jogadores entre outras coisas... O jogo não contará com o sistema de "profissões", logo, todos irão fazer uso de espadas, machados, clavas e lanças. Entretanto, cada jogador poderá se especializar em alguma área específica á partir do sistema de distribuição de pontos. Os pontos poderão ser distribuídos livremente entre as seguintes habilidades: STR - Strength (força) DEX - Dexterity (destreza) AGI - Agility (agilidade) DEF - Defense (defesa) VIT - Vitality (vitalidade) O servidor também não contará com a presença de magia (fogo, terra etc), porém, habilidades com as armas (skills) existirão. Cada habilidade será executada de forma diferente, havendo várias opções de golpes e combos para se realizar, além de habilidades passivas como a habilidade "Rage". • Administrador: MaX • Programadores: Craigmabbit, [Vago] • Mappers: Infesty, [Vago] • Spriters: Blueshard, [Vago] • Web Master/Web Designer: [Vago] • Designer: Overpower • Nome: • Cargo : • MSN: • Horas que podem ser dedicadas ao Projeto: • Nível de Experiência: • Mostrar algum Trabalho feito: • Porque quer entrar na equipe: • Adicional: facebook.com/SlayerArtOnline Curta nossa página! Quanto mais pessoas curtindo, mais conteúdo sobre o projeto será liberado!! Okami Games. ----------------------------------------------- Opa, o tópico estava impossibilitado de receber comentários novos, já arrumei isto, acontece... ^^
    1 ponto
  14. drakylucas

    Arena Sobrevivencia Event System

    Bom, esse sistema é requisitado por muitos donos de servidores.. sempre quando pedem as pessoas fazem e enviam por PM, por ser meio dificil... Essa é minha versão desse sistema Créditos 90% Draky Lucas (eu) 10% Vodkart (uma função que utilizei e me explicou como funcionaria o sistema, q os players nao sabem explica direito kk) O que ele é? o GM do servidor digita /arena X, onde o X é o numero de jogadores necessarios para o evento começar.. supondo que o GM digitou /arena 5: o evento criaria um teleport na posição configurada; esperaria 5 players entrarem nesse teleport (não contando os GM's.. também configuravel); assim que o 5º player entrasse, o evento esperaria um delay (configuravel) e sumonaria os bixos de cada level do evento (monstros e leveis configuraveis), e assim que criasse os monstros, contaria o mesmo delay varias veses para ir avançando de nivel (e criando mais monstros), os que sobreviverem ao ultimo nivel (configuravel) ganham premios (configuraveis). Não se morre no evento e não se adquire loot dos monstros, mas ganha exp dos monstros também! [SIM, É CONFUSO DE ENTENDER.. COLOQUE NO SERVIDOR E VEJA VOCÊ MESMO] TESTADO COM The Lost Server 8.6 (Caso dê erro de storage, é pq não sei se no TFS/Baiak tem as funçoes setStorage com esse nome, mas me avise que eu arrumo a versão TFS/BAIAK) Instalando o sistema: Mapa: Script: na pasta onde fica o executavel do server, há uma pasta chamada Mods, entre nela e crie um arquivo chamado arena.xml e nele coloque isso: [PS: Editado 01:39 - 14/07/2012 por correção de um erro ortográfico do forum que comeu um parenteses do script] <?xml version="1.0" encoding="UTF-8"?> <mod name="Arena" version="1.0" author="DrakyLucas" contact="XTibia" enabled="yes"> <config name="arena_config"><![CDATA[ config = { delay = 60, -- tempo de um level para o outro posicaoPlayer = {x = 37,y = 96,z = 7}, -- posição q o player vai cair dps de entra no TP posicaoArena = {{x = 35,y = 94,z = 7},{x = 42,y = 99,z = 7}}, premio = { {2160,70}, {2152,50}, }, -- ID, Quantidade... só aceita de 1 a 100 por vez, e você pode adicionar quantos itens quiser. storage = 15444, -- não mecha.. posicaoTp = {x = 37, y = 91, z = 7}, -- posicao que o teleporte vai aparecer acesso = 3, -- acesso minimo para ser ignorado pelo evento, e o mesmo acesso para poder inicializa-lo } -- você pode adicionar quantos leveis desejar -- [NumeroDoLevel] = {{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade}}, leveis = { [1] = {{"Dragon",5}}, [2] = {{"Dragon",5},{"Dragon Lord",2}}, [3] = {{"Dragon Lord",5}}, [4] = {{"Demodras",2},{"Demon",1}}, [5] = {{"Demon",5},{"Orshabaal",1},{"Ferumbras",1}}, } function abrirTeleport(n) doItemSetAttribute(doCreateItem(1387, config.posicaoTp), "aid", 2941) -- cria o tp e deixa aid 2941 doBroadcastMessage("O Evento arena vai começar! teleport foi aberto e faltam ".. n .. " pessoas para o evento iniciar!") doSetStorage(config.storage, n) end function fecharTPeAguardarEvento() doRemoveItem(getTileItemById(config.posicaoTp, 1387).uid,100) doBroadcastMessage("O evento ja concluio " .. #getPlayersInArena() .. " players e começará em " .. config.delay .. " segundos!") addEvent(evento,config.delay*1000,1) end function HaveCreatureArena(area, remove, clean) -- função do Vodkart for x = area[1].x - 1, area[2].x + 1 do for y = area[1].y - 1, area[2].y + 1 do local pos = {x=x, y=y, z=area[1].z} local m = getTopCreature(pos).uid if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end if clean ~= false then doCleanTile(pos, false) end end end end function resetEvento() doSetStorage(config.storage, -1) end function criarMonstros(lv) local monstro = leveis[lv] local area = {config.posicaoArena[1],config.posicaoArena[2]} for i = 1,#monstro do for k=1,monstro[i][2]do pos = {x=math.random(area[1].x,area[2].x), y=math.random(area[1].y,area[2].y), z=area[1].z} monstrinho = doCreateMonster(monstro[i][1], pos) registerCreatureEvent(monstrinho, "removerCorpse") end end end function evento(i) if #getPlayersInArena() == 0 then doBroadcastMessage("Ninguem sobreviveu a arena =/") doBroadcastMessage("EVENTO TERMINADO!") HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true) -- remove monstros, itens da arena resetEvento() return true end if i == (#leveis +1) then HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true) doBroadcastMessage("Evento finalizado, " .. #getPlayersInArena() .. " sobreviveram ao evento!") for _, pid in ipairs(getPlayersInArena()) do doPlayerSendTextMessage(pid,22,"Parabens, você sobreviveu ao evento!") addItens(pid) doTeleportThing(pid,getTownTemplePosition(getPlayerTown(pid))) end resetEvento() return true end for _, pid in ipairs(getPlayersInArena()) do doPlayerSendTextMessage(pid,22,"GoGo Nivel " .. i .. " !!!") end criarMonstros(i) addEvent(evento,config.delay*1000,i+1) end function addItens(pid) for i=1,#config.premio do doPlayerAddItem(pid,config.premio[i][1],config.premio[i][2]) end doPlayerSendTextMessage(pid,22,"Parabens, voce recebeu seus premios!") end function getPlayersInArena() local t = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerAccess(pid) < config.acesso then if isInRange(getCreaturePosition(pid), config.posicaoArena[1], config.posicaoArena[2]) then table.insert(t, pid) end end end return t end ]]></config> <talkaction words="/arena" event="buffer"><![CDATA[ domodlib('arena_config') if getPlayerAccess(cid) < config.acesso then return doPlayerSendCancel(cid,"Voce nao tem acesso para esse comando") end if tonumber(param) ~= nil then -- se o parametro é numerico if tonumber(param) > 0 then doSetStorage(config.storage, param) abrirTeleport(param) end else doPlayerSendTextMessage(cid,19,"Digite /arena e um numero.. \n exemplo: \n/arena 5") end ]]></talkaction> <movevent type="StepIn" actionid="2941" event="script"><![CDATA[ domodlib('arena_config') if getPlayerAccess(cid) > config.acesso then doTeleportThing(cid, config.posicaoPlayer) return false end -- GM nao conta doSetStorage(config.storage,getStorage(config.storage) - 1) doTeleportThing(cid, config.posicaoPlayer) registerCreatureEvent(cid, "naoAtacarPlayer") registerCreatureEvent(cid, "morrerNaArena") if getStorage(config.storage) <= 0 then fecharTPeAguardarEvento() end return true ]]></movevent> <event type="login" name="VerSeTaNaArenaEExpulsa" event="script"><![CDATA[ domodlib('arena_config') if isInRange(getCreaturePosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end return true ]]></event> <event type="combat" name="naoAtacarPlayer" event="script"><![CDATA[ domodlib('arena_config') if isPlayer(cid) and isPlayer(target) then if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) and isInRange(getPlayerPosition(target), config.posicaoArena[1], config.posicaoArena[2]) then doPlayerSendCancel(cid, "Nao ataque seus amigos.") return false end end return true ]]></event> <event type="death" name="removerCorpse" event="script"><![CDATA[ domodlib('arena_config') doCreatureSay(cid,"Ninguem terá meu loot! Buaahahahha",1) pos = getCreaturePosition(cid) addEvent(doCleanTile,1,pos, false) return true ]]></event> <event type="statschange" name="morrerNaArena" event="script"><![CDATA[ domodlib('arena_config') if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then if type == STATSCHANGE_HEALTHLOSS then if isPlayer(cid) then if value >= getCreatureHealth(cid) then doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid))) doPlayerSendTextMessage(pid,22,"Você morreu na arena =/.. veja pelo lado positivo, você nao perdeu nada!") doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid)) return false end end end end return true ]]></event> </mod> pronto, sistema adicionado.. agora vamos configurar: Tempo entre cada level Posição que está em branco na foto Posições que estão em azul na foto Premios (copie e cole como está, mude valores, adicione mais itens.. não há um limite de premios) Posição que o TP aparecerá para os players entrarem no event Acesso minimo para dar /arena X Monstros de cada Level (Obs: você pode adicionar quantos leveis desejar para o evento) Possiveis Erros: caso dê erro citado por algumas pessoas no forum (logo abaixo) é porque vocês utilizam uma distro diferente da minha e incompativel com UTF-8 então mudem <?xml version="1.0" encoding="UTF-8"?> por <?xml version="1.0" encoding="ISO-8859-1"?> e tudo deverá funcionar. Correção do erro feita pelo usuario KUNGLOW obrigado pela atenção Obrigado .. EXCLUSIVO XTIBIA
    1 ponto
  15. Noninhouh

    Insignias na Skill Bar

    Bom, apenas mais um sistema pra ajuda o povo que esta criando um ot Pokemon e usando o OTC GOSTARIA DE FALAR QUE TESTEI NO SERVER PDA BY SLICER primeiro vamos as edições no SERVER: Pronto, no server é isso... Agora no seu OTC, na pasta modules/game_skills: OBS: É APENAS A PARTE QUE ESTA EM VERMELHO NA IMAGEM ACIMA
    1 ponto
  16. LuckOake

    Fábrica de Scripts

    Olá galera. Tava aqui de boa sem o que fazer, aí tive essa ideia de fazer um tópico pros membros pedirem scripts simples. Regrinhas: NÃO PEÇA EVENTOS AQUI, SÓ SCRIPTS OU SISTEMAS SIMPLES; NÃO PEÇA SCRIPTS QUE JÁ EXISTEM; Se você quer algum script que está sendo vendido em algum lugar, poste aqui que eu faço pra você. Nesse tipo de caso, a regra número 1 pode ser desobedecida; Sem floods, comentários ou conversas no tópico; Por uma questão de organização, não gostaria que outros usuários sem minha permissão postassem scripts prontos para resolver pedidos aqui. Se quiserem resolver o pedido de um usuário, mande PM pra ele ou crie um tópico e poste; Faço qualquer tipo de script desde que seja da versão 8.54 até a 9.8; Não faço scripts para TFS 1.0; Não peça scripts ou sistemas que envolvam sources; Somente scripts que envolvam no máximo dois arquivos serão feitos; Máximo de dois pedidos por vez para cada usuário; Use um português adequado e detalhe bem seu pedido. Pedidos pouco detalhados ou com português ruim serão ignorados. Se não for bom com português, ao menos TENTE escrever adequadamente. O Oneshot e o Manoel Neto tem permissão para atender pedidos no tópico. Oneshot trabalha como quer, do jeito que quer e quando quer. Obs: E odeia leechers. Caso você não entenda o por quê de postar aqui ao invés de criar um tópico, pense no seguinte. Você quer um script bem feito, bem explicado e de fácil configuração ou um que qualquer usuário chega lá e faz? Garanto que todos os scripts que farei nesse tópico serão, no mínimo, de alta qualidade. Abraços e aproveitem a oportunidade. Ao contrários dos outros tópicos de fábrica de scripts, aqui não vou tentar fazer. Se estiver dentro das regras, vou fazer.
    1 ponto
  17. Eu vejo muitas pessoas pedindo esses dois scripts, então eu fiz eles e vou postar para facilitar a vida de todo mundo =) Creditos: Killua, antigo amoeba13 Matar player e arrancar o coração: Matar o player e avisar para todo mundo no Default: Espero que seja util, ate a proxima
    1 ponto
  18. Lordfireot

    Baiakzik editd 8.60

    Ola galera venho aqui mostrar outro servidor que eu estava terminando ele ai deu uma preguiça de termina faltava pocas coisas algums erros do Executer do baiak eu arrumei outros não conseguo kkkk O que eu fiz no servidor?. Modifiquei o templo. Modifiquei a sala de tps vips. Modifiquei a cidade principal. Retirei vários bugs do mapa. Retirei vários erros no EXE do servidor. Retirei algums comando duplos do servidor. Retirei algums comandos inativos que não prestava para nada. Entre outras coisas. Imagens. Templo Download. Clique aqui Scan. Aqui scan Obrigado galera não tinha muito que fala por que e um baiak normal mais eu editei ele e postei o que eu lembro que eu mechei mais existe mais coisas ainda que eu não disse.
    1 ponto
  19. Omega

    Sistema de Quartel General

    Atendendo ao pedido do LourencoTibia (http://www.xtibia.com/forum/topic/221228-peca-aqui-o-seu-sistemaevento/page-2#entry1563530) Explicação: Você cria uma casa. Através dessa casa você dá acesso a um lugar (preferivelmente pequeno). Nesse lugar você coloca uma alavanca e um quadro negro, placa, ou coisa do tipo. Ao puxar a alavanca, será ativado um respawn de um determinado monstro (configurável), limpando todos os outros monstros que existem nessa área, enviando uma msg para o jogador sobre qual respawn está ativado. Ao olhar para a placa/quadro/etc (você escolhe), o jogador receberá uma janela com os monstros que podem ser ativados e qual está ativo no momento. Códigos: Salve em actions/scripts como qgaction1.lua Salve em creaturescripts/scripts como qglook1.lua: TAGs Em creaturescripts.xml, adicione:<event type="look" name="QGboard1" event="script" value="qglook1.lua"/> Em actions.xml, adicione:<action actionid="> actionid de sua escolha <" script="qgaction1.lua"/> Em login.lua, adicione (próximo aos demais registerCreatureEvents)registerCreatureEvent(cid, "QGboard1") Configurações (preste atenção ou não irá funcionar) local aid = 75000 Aqui você deverá adicionar um actionid (diferente para cada QG) no quadro/placa/etc (pelo editor do mapa) e ele deverá ser o mesmo daquilocal monsters = { [1] = 'demon', [2] = 'vampire', [3] = 'dragon lord', [4] = 'hydra', } Aqui você deve configurar, ordenadamente, os monstros que estarão disponíveis do Quartel Generallocal posi = {x=49, y=217, z=7} local posf = {x=90, y=271, z=7} Aqui você deve configurar a posição inicial (canto superior esquerdo) e a posição final (canto inferior direito) do seu QGlocal gstorage1 = 8671 local gstorage2 = 8672 Aqui você deve colocar números aleatórios e diferentes em cada QG (lembre-se de editar nos dois arquivos e deixe assim para o primeiro QG)local respPos = { [1] = {x=57, y=223, z=7}, [2] = {x=79, y=223, z=7}, [3] = {x=56, y=224, z=7}, [4] = {x=82, y=242, z=7}, } Aqui você insere cada uma das posições dos spawns, dentro da área em que os monstros serão criadosO processo deverá ser repetido inteiro para cada novo QG, mudando, além das configurações, os nomes QGboard1, qglook1, qgaction1 para o número do QG que você está fazendo! Screenshot
    1 ponto
  20. Oi Nakamura, tudo certo? Bem cara, vou te dar um conselho (por tal, você segue se quiser, é só uma mera opinião). Se você não gosta de depender dos outros (grande qualidade) poderia começar a estudar sozinho. Todo o básico você aprende por si só tranquilamente, até porque Lua se destaca por sua sintaxe simples e amigável, não é algo complexo nível C++ garanto a você. Claro que, tudo depende de sua paciência e treino, não pode achar que em um mês vai sair scripteando nível Luck Oake ou Oneshot, mas pode levá-los como inspiração assim como eu levo. E vale ressaltar também que o fórum tem uma área de dúvidas pra scripting, e se você tiver alguma, sempre aparece alguém pra ajudar, principalmente agora com a volta de alguns membros mais experientes. Agora acabando com esse papo, posso te dar um "norte" se você quiser. Bem, não sei se é porque eu sou mais programador do que scripter, mas sempre preferi Lua pura e acho um ótimo jeito de começar, ou seja, domine a linguagem, depois é só ir usando seus conhecimentos junto com as funções de Otserver, vai dar super certo. Se quiser algum material para começar: Manual de Lua 5.1 (Tudo sobre lua) Quick Lua Tour (Uma espécie de apresentação para quem tem Lua instalado no Pc resume bastante coisa da linguagem. Ps: Está em inglês, espero que você saiba que pra ser scripter precisa saber inglês) Dica: Treine lógica, várias vezes você vai sentir falta disso na hora de digitar códigos, é sério. Bem, acho que só, poderia escrever um texto sobre como você poderia começar, mais a melhor parte é você descobrir isso. Abraços.
    1 ponto
  21. LuckOake

    Problema no Config.lua

    Aqui: ownerName = "Hardbaiak World OT Server" ownerEmail = "" url = " location = "Brazil" displayGamemastersWithOnlineCommand = false Mude para: ownerName = "Hardbaiak World OT Server" ownerEmail = "" url = "" location = "Brazil" displayGamemastersWithOnlineCommand = false
    1 ponto
  22. Oneshot

    Fábrica de Scripts

    Sim e não. Sim, eu entendi o que você quis dizer. O sistema do Vodkart é necessário pedir a task ao NPC, e o que eu fiz é automático. E não, eu não vou fazer o comando !task, você pediu um NPC, eu fiz e ainda te dei o creaturescript de brinde. E se você se sentir contrariado com este post, Manual de Referência de Lua 5.1 é serventia da casa. Um grande abraço e vai pela sombra.
    1 ponto
  23. LuckOake

    Fábrica de Scripts

    Até boa sorte com seu tópico. Em data/movements/scripts, crie um arquivo chamado equip_bullet.lua e coloque dentro: local look = 3 -- ID da outfit function onEquip(cid, item) doSetCreatureOutfit(cid, {lookType = look}, -1) return true end function onDeEquip(cid, item) doRemoveCondition(cid, CONDITION_OUTFIT) return true end Movements.xml: <movevent type="Equip" itemid="2160" slot="ammo" script="equip_bullet.lua"/> <movevent type="DeEquip" itemid="2160" slot="ammo" script="equip_bullet.lua"/>
    1 ponto
  24. Gabrieltxu

    [Pokemon] Servidor Skyfall - Completo

    /\ Vlw maninho espero que vc faça um bom uso
    1 ponto
  25. ikaroangelo

    [Encerrado] Bug level 1

    amigo vá em data\creaturescripts\scripts, procure o arquivo playerdeath e apague tudo dentro e coloque isto! local config = { deathListEnabled = getBooleanFromString(getConfigInfo('deathListEnabled')), sqlType = getConfigInfo('sqlType'), maxDeathRecords = getConfigInfo('maxDeathRecords') } config.sqlType = config.sqlType == "sqlite" and DATABASE_ENGINE_SQLITE or DATABASE_ENGINE_MYSQL function onDeath(cid, corpse, lastHitKiller, mostDamageKiller) if(config.deathListEnabled ~= TRUE) then return end local hitKillerName = "field item" local damageKillerName = "" if(lastHitKiller ~= FALSE) then if(isPlayer(lastHitKiller) == TRUE) then hitKillerName = getPlayerGUID(lastHitKiller) else hitKillerName = getCreatureName(lastHitKiller) end if(mostDamageKiller ~= FALSE and mostDamageKiller ~= lastHitKiller and getCreatureName(mostDamageKiller) ~= getCreatureName(lastHitKiller)) then if(isPlayer(mostDamageKiller) == TRUE) then damageKillerName = getPlayerGUID(mostDamageKiller) else damageKillerName = getCreatureName(mostDamageKiller) end end end db.executeQuery("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `altkilled_by`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", " .. db.escapeString(hitKillerName) .. ", " .. db.escapeString(damageKillerName) .. ");") local rows = db.getResult("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";") if(rows:getID() ~= -1) then local amount = rows:getRows(true) - config.maxDeathRecords if(amount > 0) then if(config.sqlType == DATABASE_ENGINE_SQLITE) then for i = 1, amount do db.executeQuery("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);") end else db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";") end end end end Depois vá em data\creaturescripts/creaturescripts.xml e adicione está tag <event type="death" name="PlayerDeath" event="script" value="playerdeath.lua"/>
    1 ponto
  26. Esses são os últimos mapas que faltaram a ser postados aqui no XTibia, onde eu comecei a mappear. Esse tópico é o fechamento do ciclo, valeu. The End
    1 ponto
  27. kttallan Só nem eu acredito que fiz com você tu e esperto de mais só quero ver como vai ficar esse ot 9.6 Base não trabalho com nenhum serve base conhecido agora é próprio o serve sem PDA é tals ate agora vocês nessa enrolação toda só botaram races é ta botando combate é quando vir botar catch , goback é tals so quero ver. não quero discutir mais sobre esse assunto dps vem o moderador dizendo reportado por ter arrumado intriga mais na verdade quem recomeçou foi você eu e o carinha já tínhamos parado Parei De Descutir. @Vamo Pokeb Quero Ver Novos "Sistemas" cara se liga eu to trabalhando nesse serve pus catch goback,fly,ride,surf e varias outras coisas Equipe do pokeb se quiser que passe e só fala!
    1 ponto
  28. LuckOake

    Fábrica de Scripts

    Rapaz, mas o último fix que postei estava funcionando normalmente. Você deve ter colocado algo errado.
    1 ponto
  29. alissonfgp

    Global Server 10.10

    no caso vc poderia me disponibilizar essa database nesse topico? desde ja agradecido troquei a o mysql por sqlite e liguei o serv mais quando ele vai carregar esta dando muitos erros Os erros q aparece sao por causa da database, substitui ela por essa, http://www.mediafire.com/download/pu81diqkwnx6cxy/theforgottenserver.s3db
    1 ponto
  30. Gabrieltxu

    [Encerrado]GabrielTxu

    Nem,. Smix tem como trabalhar com ele não
    1 ponto
  31. terminei, vou mandar por pm...
    1 ponto
  32. Até onde percebi, a única diferença foram colocar um botão pra isso. Até a versão anterior, meus gráficos já eram assim, ou, no mínimo, idênticos.
    1 ponto
  33. é porque tem jogadores que são donos de guild, ai teria que deletar a guild antes para depois deletar o player... quando eu tiver um tempinho eu faço esse script para deletar guild, house e o player
    1 ponto
  34. Ta ai: lifestone.lua: function onUse(cid, item, frompos, item2, topos) local cargas = 50 -- Aqui você coloca quantas vezes o player pode usar a pedra local bonus = 10 -- Aqui você coloca quanto de life o player vai ter a mais quando usar a pedra if getPlayerStorageValue(cid, 8085) >= cargas then doPlayerSendTextMessage(cid,26,"Você não pode mais usar este item.") return true end if getPlayerStorageValue(cid, 8085) == -1 then doPlayerSetStorageValue(cid, 8085, 0) end if getPlayerStorageValue(cid, 8085) >= 0 and getPlayerStorageValue(cid, 8085) < cargas-2 then doPlayerSetStorageValue(cid, 8085, getPlayerStorageValue(cid, 8085)+1) doPlayerSendTextMessage(cid, 22, "Você pode usar este item mais "..math.abs(getPlayerStorageValue(cid, 8085)-cargas).." vezes.") setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de vida.") doSendMagicEffect(topos,35) doRemoveItem(item.uid) elseif getPlayerStorageValue(cid, 8085) == cargas-2 then doPlayerSetStorageValue(cid, 8085, getPlayerStorageValue(cid, 8085)+1) doPlayerSendTextMessage(cid, 22, "Você pode usar este item mais "..math.abs(getPlayerStorageValue(cid, 8085)-cargas).." vez.") setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de vida.") doSendMagicEffect(topos,35) doRemoveItem(item.uid) else doPlayerSetStorageValue(cid, 8085, getPlayerStorageValue(cid, 8085)+1) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de vida.") doSendMagicEffect(topos,35) doRemoveItem(item.uid) end end manastone.lua: function onUse(cid, item, frompos, item2, topos) local cargas = 50 -- Aqui você coloca quantas vezes o player pode usar a pedra local bonus = 10 -- Aqui você coloca quanto de mana o player vai ter a mais quando usar a pedra if getPlayerStorageValue(cid, 8086) >= cargas then doPlayerSendTextMessage(cid,26,"Você não pode mais usar este item.") return true end if getPlayerStorageValue(cid, 8086) == -1 then doPlayerSetStorageValue(cid, 8086, 0) end if getPlayerStorageValue(cid, 8086) >= 0 and getPlayerStorageValue(cid, 8086) < cargas-2 then doPlayerSetStorageValue(cid, 8086, getPlayerStorageValue(cid, 8086)+1) doPlayerSendTextMessage(cid, 22, "Você pode usar este item mais "..math.abs(getPlayerStorageValue(cid, 8086)-cargas).." vezes.") setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de mana.") doSendMagicEffect(topos,1) doRemoveItem(item.uid) elseif getPlayerStorageValue(cid, 8086) == cargas-2 then doPlayerSetStorageValue(cid, 8086, getPlayerStorageValue(cid, 8086)+1) doPlayerSendTextMessage(cid, 22, "Você pode usar este item mais "..math.abs(getPlayerStorageValue(cid, 8086)-cargas).." vez.") setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de mana.") doSendMagicEffect(topos,1) doRemoveItem(item.uid) else doPlayerSetStorageValue(cid, 8086, getPlayerStorageValue(cid, 8086)+1) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de mana.") doSendMagicEffect(topos,1) doRemoveItem(item.uid) end end Da proxima vez detalhe melhor seu pedido... Espero ter ajudado
    1 ponto
  35. @Seagull Scripts das pedras finitas: lifestone.lua: function onUse(cid, item, frompos, item2, topos) local cargas = 50 -- Aqui você coloca quantas vezes o player pode usar a pedra local bonus = 10 -- Aqui você coloca quanto de life o player vai ter a mais quando usar a pedra if getPlayerStorageValue(cid, 8085) >= cargas then doPlayerSendTextMessage(cid,26,"Você não pode mais usar este item.") return true end if getPlayerStorageValue(cid, 8085) == -1 then doPlayerSetStorageValue(cid, 8085, 0) end if getPlayerStorageValue(cid, 8085) >= 0 and getPlayerStorageValue(cid, 8085) < cargas-2 then doPlayerSetStorageValue(cid, 8085, getPlayerStorageValue(cid, 8085)+1) doPlayerSendTextMessage(cid, 22, "Você pode usar este item mais "..math.abs(getPlayerStorageValue(cid, 8085)-cargas).." vezes.") setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de vida.") doSendMagicEffect(topos,35) elseif getPlayerStorageValue(cid, 8085) == cargas-2 then doPlayerSetStorageValue(cid, 8085, getPlayerStorageValue(cid, 8085)+1) doPlayerSendTextMessage(cid, 22, "Você pode usar este item mais "..math.abs(getPlayerStorageValue(cid, 8085)-cargas).." vez.") setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de vida.") doSendMagicEffect(topos,35) else doPlayerSetStorageValue(cid, 8085, getPlayerStorageValue(cid, 8085)+1) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de vida.") doSendMagicEffect(topos,35) doRemoveItem(item.uid) end end manastone.lua: function onUse(cid, item, frompos, item2, topos) local cargas = 50 -- Aqui você coloca quantas vezes o player pode usar a pedra local bonus = 10 -- Aqui você coloca quanto de mana o player vai ter a mais quando usar a pedra if getPlayerStorageValue(cid, 8086) >= cargas then doPlayerSendTextMessage(cid,26,"Você não pode mais usar este item.") return true end if getPlayerStorageValue(cid, 8086) == -1 then doPlayerSetStorageValue(cid, 8086, 0) end if getPlayerStorageValue(cid, 8086) >= 0 and getPlayerStorageValue(cid, 8086) < cargas-2 then doPlayerSetStorageValue(cid, 8086, getPlayerStorageValue(cid, 8086)+1) doPlayerSendTextMessage(cid, 22, "Você pode usar este item mais "..math.abs(getPlayerStorageValue(cid, 8086)-cargas).." vezes.") setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de mana.") doSendMagicEffect(topos,1) elseif getPlayerStorageValue(cid, 8086) == cargas-2 then doPlayerSetStorageValue(cid, 8086, getPlayerStorageValue(cid, 8086)+1) doPlayerSendTextMessage(cid, 22, "Você pode usar este item mais "..math.abs(getPlayerStorageValue(cid, 8086)-cargas).." vez.") setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de mana.") doSendMagicEffect(topos,1) else doPlayerSetStorageValue(cid, 8086, getPlayerStorageValue(cid, 8086)+1) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonus) doPlayerSendTextMessage(cid,22,"Você ganhou mais "..bonus.." de mana.") doSendMagicEffect(topos,1) doRemoveItem(item.uid) end end
    1 ponto
  36. Animal Pak

    Pokemon Centurion 4.0

    Pokemon Centurion 4.0 Informações: -Adicionado novo continente e novas cidades; -Novas Addons; -Novas Addons para os pokemons; -Mapa editado; -Novos Pokemons; -M1 - M12; -Novos Itens; -Sistema de duelos com npcs; -Dive System; -Servidor 100% estável; -E muito mais! Screen's: Download & Scan: Download: http://www.mediafire...imcb81wtwd61v5p Scan: https://www.virustot...sis/1355705844/ Download Client: Download: http://www.4shared.com/rar/Td3eKQ44/Pokemon_Centurion_40_Oficial.html? Créditos: Alexandre .:[*OwNeR*]:. Cacaiu Equipe de ajuda do CACAIU...
    1 ponto
  37. Piabeta Kun

    Pokemon Centurion 4.0

    infelizmente o que foi passado para nois na reunião passada, é que deve se manrter aberto o centurion, pois como já dito pelo slicer, o centurion é de base do bru123 e é open source! Será mantido!
    1 ponto
  38. Beeki

    [Npc] Npc Viagem.

    é cara aki tá o script você configura ai. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if (not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'thais') and not isPlayerPzLocked(cid) then if doPlayerRemoveItem(cid, 2152, 15) == true then doTeleportThing(cid,{x=32311, y=32210, z=6}) self:releaseFocus(cid) else npcHandler:say('You don\'t have enought money to travel!', cid) self:releaseFocus(cid) end end if msgcontains(msg, 'carlin') and not isPlayerPzLocked(cid) then if doPlayerRemoveItem(cid, 2152, 15) == true then doTeleportThing(cid,{x=32387, y=31821, z=6}) self:releaseFocus(cid) else npcHandler:say('You don\'t have enought money to travel!', cid) self:releaseFocus(cid) end end if isPlayerPzLocked(cid) then npcHandler:say('You can\'t travel, you have pz!', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) keywordHandler:addKeyword({'travel'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to all places: {thais}, {carlin}.'}) npcHandler:addModule(FocusModule:new())
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...