Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/05/12 em todas áreas
-
Trade Logs
GOD Vitor e 2 outros reagiu a Vodkart por um tópico no fórum
Explicação: Vocês sabem que os comandos que o GOD usa ficam salvos em um arquivo.txt certo? Esse sistema é parecido, só que quando o jogador for trocar items pelo trade vão ficar salvo os IDS dos items que foram trocados e os nomes dos players. 1° Versão é feita pelo Banco de dados: 2° Versão é salvo em um arquivo.txt em data/logs3 pontos -
Baiak Extreme OTProjects 0.7 - O MELHOR BAIAK! (8.60) Servidor feito pela Otprojects. Fala galera estou aqui para apresentar o novo Baiak Extreme, A OTProjects trabalhou muito tempo neste servidor. Ele custava cerca de 35 Reais na loja da OTprojects, mas foi liberado de graça e eu estou repassando pra vocês. Este servidor é um dos Mapas Baiak mais completos, possui WoE, Dota, Coliseum, Zombie e outros Eventos. Tá esperando o que? Confira logo! Cidades: ├ Baiak City ├ Desert City ├ Hydraland ├ Yalahar (Cidade VIP) └ Thais Imagem #1: Templo - Baiak City Imagem #2: Glacial Area Imagem #3: Baiak City O Que Contêm no Servidor: ├ Eventos Exclusivos : ├DotA ├ WoE ├ Coliseum ├ Zombie Event ├ Yalahar como City VIP ├ City do Baiak Totalmente Reformulada. ├ Novos Teleports e Quests ├ War Castle ├ Novos NPC'S ├ War System. └ TFS 0.4 DEV Rev: 3777 Já Compilado. Lista Das Principais Quests (Todas Funcionando 100%): ├ The Annihilator Quest ├ Demon Helmet Quest ├ Firewalker Boots Quest ├ The Inquisition Quest ├ The Pits of Inferno Quest ├ The Demon Oak Quest └ In Service of Yalahar Quest Update 0.7: - Sem o Bug dos Stages - Com TFS 0.4 REV 3884 - O MELHOR PARA WINDOWS - Crashes no Console Removidos - Agora em MYSQL, Recomendo que usem o Xampp e o Gesior para fazer o Site. Senha do God: god/god Como Abrir o Mapa Caso dê Erro: Vai no RME Aperta em File>New>Import Map e Selecione o Mapa do Baiak Extreme. Download & Scan ATENÇÃO: UTILIZE MYSQL para Melhor Resultado! Download Os vírus acusados estão no Distro, o Servidor está Limpo! ATENÇÃO! Para o MELHOR FUNCIONAMENTO DO OT, Recomendo que USEM MYSQL! Créditos:2 pontos
-
Ola galera to XTIBIA, esse é meu primeiro tópico, e só tenho 6 meses de tibia, mais deu pra eu fazer um script, simples mais simbolico e bem util para servers em geral, então vamos lá... Bom o script se baseia-se em 2 scripts juntados mais a ajuda do nosso e velho amigo Vodkart, ele me ajudo na edição e ajustes dos erros encontrados no sistema. O funcionamento é simples, vc da o comando !sentar (você pode editar como quizer), e o seu o personagm sentar, e com isso o MANA e LIFE vão se recuperando aos poucos (você pode editar o tempo de recuperação e quando ele vai ganha de MANA e LIFE por tempo), para que o personagem volte ao normal vc deve digita o comando denovo, !sentar, ai ele saira da paralisação e voltara a andar normalmente. Primeiramente pegue um arquivo qualquer no seu server e renomeie para: sentar.lua Depois abra esse arquivo e coloque o SCRIPT abaixo dentro do arquivo: sentar.lua: SCRIPT: -- (Sistema para sentar com recuperação automatica) -- -- Criadores: Flaah e Vodkart (Não retirem os créditos) -- events = {} config = { sit = {hp = 5, mana = 5}, outfit = {lookType = 357}, storage = 21211 } local outfits = { [1] = {lookType = 200}, -- o numero 1 é o ID da vocação e 200 é o ID do looktype. [2] = {lookType = 201}, -- o numero 2 é o ID da vocação e 201 é o ID do looktype. [3] = {lookType = 202}, -- o numero 1 é o ID da vocação e 202 é o ID do looktype. } function onSay(cid, words, param, channel) setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) == -1 and 1 or -1) doCreatureSetNoMove(cid, getPlayerStorageValue(cid, config.storage) == 1 and true or false) if getPlayerStorageValue(cid, config.storage) == 1 then doPlayerSay(cid, "Ufa, Relaxando") doSetCreatureOutfit(cid, config.outfit, -1) doSendMagicEffect(getCreaturePosition(cid), 69) doSitRelax(cid, config.sit) else doPlayerSay(cid, "OPA, hora de volta ao trabalho") doRemoveCondition(cid, CONDITION_OUTFIT) stopEvent(events[getPlayerGUID(cid)]) local voc_id = getPlayerVocation(cid) if getPlayerVocation(cid) > 0 then doSetCreatureOutfit(cid, outfits[voc_id], -1) end end return true end function doSitRelax(cid, formula) if not isCreature(cid) then return LUA_ERROR end doCreatureAddHealth(cid, formula.hp) doCreatureAddMana(cid, formula.mana) doSendMagicEffect(getCreaturePosition(cid), 69) events[getPlayerGUID(cid)] = addEvent(doSitRelax, 5000, cid, formula) end COMANDO: <talkaction words="!sentar" event="script" value="sentar.lua" /> INFORMAÇÕES: O que esta em: [1], [2] [3] Você devera coloca cada vocation que tem no seu server. O que esta em: {lookType = 200} Você devera colocar cada looktype que representa cada vocation do seu server. O que esta em: sit = {hp = 5, mana = 5}, São a quantidade de MANA e LIFE que o player ira ganha quando estive sentado. O que esta em: outfit = {lookType = 3}, é looktype de quando o player estive sentado. O que esta em: doPlayerSay(cid, "Ufa, Relaxando") e doPlayerSay(cid, "OPA, hora de volta ao trabalho") São as falas que o player ira solta quando fizer o comando se !sentar e depois !sentar denovo para pode levantar. O que esta em: doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYAREA) É o efeito que o player irar ganha ao sentar e o segundo é quando o player estive ganhando o MANA e LIFE. E o que esta em: events[getPlayerGUID(cid)] = addEvent(doSitRelax, 5000, cid, formula) É o tempo que o player irar fica ganhando o MANA E LIFE. (Sendo que 5000 são 5 segundos). OBS: Para que vc coloque mais vocations e lookType é só repetir essa linha, mais claro trocando os numeros pelos o que você quer: [1] = {lookType = 200}, Bom.. tomara que vocês tenham gostado , deu um pouco de trabalho mais valeu a pena, Obrigadão Vodkart pela ajuda, e obrigado XTIBIA pelo ótimo forum de vocês, Boa Noite a Todos. PS: Tomara que eu tenha merecido um +REP ai u.u, KKKKK' ASS: Flaah2 pontos
-
Eu fiz o sistemas da lanterna e foi testado e funciona. Va em actions/scripts e crie um arquivo lua chamado lanterna e adicione Coloque esta tag em actions.xml <action itemid="ID Da Lanterna" event="script" value="lanterna.lua"/> Agora voce vai em creaturescripts/scripts e crie um arquivo lua chamado luz e coloque isto Coloque esta tag em creaturescripts.xml <event type="think" name="luz" event="script" value="luz.lua"/> Registra o evento va em login.lua antes do ultimo return true coloque isto registerCreatureEvent(cid, "luz")2 pontos
-
Olá Gente hoje vim denovo aqui Para postar uma Nova Action essa Funciona 100¢ Primeiro Vai na Pasta Actions,Actions XML Actions Xml = <action actionid="7100" script="alavanca.lua"/> Crie um arquivo.lua Chamado - Alavanca.lua Coloque Isso: -- annihilator level 200 lever function onUse(cid, item, frompos, item2, topos) if item.uid == 7100 and item.itemid == 1946 then player1pos = {x=161, y=46, z=4, stackpos=253} < Local Aonde Player Vai Fica (Exclui Essa Frase Nao ESQUEÇA) player1 = getThingfromPos(player1pos) player2pos = {x=161, y=47, z=4, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=161, y=48, z=4, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=161, y=49, z=4, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then queststatus1 = getPlayerStorageValue(player1.uid,7100) queststatus2 = getPlayerStorageValue(player2.uid,7100) queststatus3 = getPlayerStorageValue(player3.uid,7100) queststatus4 = getPlayerStorageValue(player4.uid,7100) if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then nplayer1pos = {x=160, y=54, z=7} < lOCAL AONDE PLAYER VAI APARECER TIRA ESSA FRASE nplayer2pos = {x=160, y=54, z=7} nplayer3pos = {x=160, y=54, z=7} nplayer4pos = {x=160, y=54, z=7} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid,"Somebody in your team has already done this quest.") end else doPlayerSendCancel(cid,"You need four players for this quest.") end elseif item.uid ==7100 and item.itemid == 1946 then if getPlayerAccess(cid) > 0 then doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end else return 0 end return 1 end - Depois Você Abre Seu Remeres,escolhe um um lugar e coloca os Tiles ,e uma alavanca Com id de 1946 Nao coloca de 1945 que não vai pegar. - Depois Você clica Propriedades Action ID : 7100 Unique ID : 7100 Aperta "OK" Pronto. Atençao: Não esqueça de muda os position Qualquer duvida só posta eu vô responder a todos. Creditos: A Min pois eu tirei uns bugs que dava no mapa,Mais eu devo muito a um script já estava em um Baiak.1 ponto
-
AGORA NA VERSÃO 2.0 Ola amigo Xtibianos vim trazer uma novidade a vocês... sei que existem varios Baiaks por ai.. todos diferentes alguns são até iguais mais com funções inovadoras.. A um tempo atras resolvi criar um Baiakão pra mim rsrs. E pior que deu certo, em 5 dias online consegui conquistar mais de 100 players fixos online. mais acabei ficando sem tempo de resolver tudo sozinho e resolvi fechar. o server ficou parado aqui.. muitos no msn me pedirão e eu nunca tive coragem de entregar ele assim de mão beijada né guardei por um bom tempo.. Mais.... hoje resolvi dar uma olhada nele e enquanto eu via o mapa .. funções.. e outras coisas mais , acabei achando interessante eu liberar ele aqui pra vocês Xtibianos... Então chega de papo e vamos ao que Importa.... Baiak 8.60 Usando Crystal server All features, actions, funções 100% Addons 100% Spells 100% Vocações balanceadas. Estabilidade garantida. Serve save sem lag Clean 100% Talkactions GOD, CM, GM 100% MAPA Baiak Yourots Editado por mim. INQ. Quest 100% POI 100% Anihi 100% Areá VIP com Hunts e teleports 100% Sala de teleports Arenas e muito mais... LAST UPDATE VIP 1 - 100% VIP 2 - 100% Adicionado Comando !buyvip por 3kk Adicionado Novos Outfits "Elf e Vampire" Mapa com novo visual npcs concertados e melhorados Novas quests novas hunts novas arenas PRINTS... Trainers Cidade... Addon Elf... Vampire Addon... Templo... Novos Teleports no DP É isso ai galera .. já que viram um pouco do mapa.. irei postar abaixo beleza xD acho que sera util para alguem que esteja a proucura de um baiak estavel.. Se a galera curtir estarei disponibilizando ele na versão 9.44 do Crystal server... ACC GOD = god/god CREDITOS: Tryller - desenvolvedor crystal server. Erimyth - Edição, melhorias e adaptações de novas actions. Equipe Baiak Yourots. DOWNLOAD: LINK ON - >>> Mediafire <<< SCAN: CLICK AQUI - VIRUSTOTAL <- Scan atualizado com a versão 2.01 ponto
-
[8.54] Naruto Atarashi Online V.1 Beta
irandasilvaalve reagiu a Avuenja por um tópico no fórum
Naruto Atarashi Online Menu: ├ Informações; ├ Ajustes; ├ Erros; ├ Senha; ├ Prints; ├ Download; ├ Scan; └ Créditos. Informações Nome Do Servidor: Naruto Atarashi Online Max Usuários Online: 100 Online Ele Contém:"Mapa Próprio" ; "Jutsus Próprio" / ( Diga "!jutsus" para saber Seu Jutsu) "Quest Própria". Ajustes 0.1 - Modificado Dat e Spr (Modificado Por Avuenja) (21/Março) 0.2 - Arrumado Outifts Dos Personagens E Monstros / (Arrumado Por Avuenja) (20/Abril) 0.3 - Arrumado Corpos Dos Montros / Dando Debug quando Players Matavam Os Mesmos / (Arrumado Por Avuenja) (26/Abril) 0.4 - Novos Montros / (Adicionado Por Avuenja) (28/Abril) 0.5 - Erro Trainer / Pouca Vida / ( Arrumado Novamente Por Avuenja) (08/Maio) 0.6 - Novas Houses / (Adicionado Por Avuenja) (26/Maio) 0.7 - Criada Uma Arena PvP / (Adicionado Por Avuenja) (26/Maio) 0.8 - Criado Sistema Ver Jutsus / (Adicionado Por Avuenja) (26/Maio) 0.9 - Arrumado Jutsus Que Não Funcionavam / (Arrumado Por Avuenja) (26/Maio) Erros 0.1 - Anbu Em Casa Separada Na Cidade Principal / (Ainda Não Arrumado) 0.2 - Pode Se Levar Debug Em Alguns Montros / (Ainda Um Pouco) Obs - Se Achar Mais, Basta Entrar Em Contato Com: avu.carvalho@gmail.com Senha Senha Para Entrar No Server / (Do GOD): god / god Prints Download's NrtAo V.1 Scan NrtAo V.1 Créditos 50% Eu (Avuenja) - Motivo: "Edição Final / Ajustes Finais / Implementação De Sistemas / E Outros". 45% (Stigal) - Motivo: "Edição Mediana / Alguns Ajustes". 5% (Seven) - Motivo: "Edição Inicial".1 ponto -
Double Exp Para Vip
williamserravalle reagiu a Vodkart por um tópico no fórum
servidos testado 8.54 ~ 8.60 Quando você compra vip você pode aumentar a taxa de exp em percent que ele irá receber a mais,como se fosse um bonus... a taxa se modifica aqui: local rate = 1.5 -- 50% vermelho:representa o quanto irá subir em % caso fosse 20% seria local rate = 1.2 e por ai vai.... [ Double exp para o Perfect Vip System ] : [ Double exp para o Vip System By Account V1.0 ] : [ Double exp para o Vip System By Mock] :1 ponto -
Bom Galera , este é meu primeiro tutorial sobre websites. Só vai funcionar com database phpmyadmin Que pode ser muito útil para aqueles que gostam de resetar mas nao quer devolver items. =D Vamos lá. 1) Acesse seu localhost/phpmyadmin 2) Vá na sua database e depois em SQL 3) Vai aparecer "Faser consulta no banco de dados" 4) Nele voce escreve os codigos correspondentes á açao que voce quer faser. -AS açoes vou listar elas abaixo Para resetar os lvl e a life: UPDATE `players` SET `level` = '8', `health` = '180', `healthmax` = '180', `experience` = '4200', `mana` = '35', `manamax` = '35', `cap` = '400' Para resetar os skills: UPDATE `ot`.`players_skills` SET `value` = '10' Remover Premium Dos players: (serve para vip system que vende premmy no gesior) UPDATE account SET premdays=0; Adicionar 3 dias de Premium: UPDATE accounts SET premdays = premdays + 3; Mandar Geral po templo: UPDATE players SET posx = X, posy = Y, posz = Z; Criar Account Manager: INSERT INTO `players` VALUES (1, 'Account Manager', 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 10, 10, 10, 0, 0); Remover Red skulls , Black Skuls e Frags de todos: UPDATE `players` SET `redskulltime`=0; Dar bless para todos: UPDATE `players` SET `blessings`=31; Remover um Item especifico: (exemplo 2160= crystal coin) ótimo para casos de clonadores. DELETE FROM player_depotitems, player_items, tile_items WHERE itemtype = 2160; Deletar players lvl 50- (CUIDADO, EXECUTANDO ESSA AÇAO VOCE IRÁ DELETAR OS SAMPLES. AUMENTE O LVL DOS SAMPLES E DEPOIS VOLTE AO NOMRAL) DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60 Deletar houses de players que foram deletados: UPDATE `houses` SET `owner` = '0' WHERE `houses`.`owner` NOT IN ( SELECT `players`.`id` FROM `players` WHERE `players`.`id` = `houses`.`owner` ); Trocar Outifit de all players: UPDATE players SET lookbody =61, lookfeet =93, lookhead =127, looktype =128 Deletar players que nunca logaram: DELETE FROM `players` WHERE `lastlogin`=0; É isso galera, espero ter ajudado. fmz? Se nao for muito para vcs , dao REP + Thanks. é para o xtibia. :XTibia_smile:1 ponto
-
Crazy Evolution
vitorelias reagiu a crazyboy por um tópico no fórum
Ola aqui estou eu de novo desta vez com um novo server!!! Andei a corrigir muitos erros que ele tinha e a adicionar novas coisas! O servidor foi construído á mais de 2 anos, está tudo pronto. No servidor tinha em média 400-600, jogadores online! As poções infinitas, runas e munição, bem desenhado o mapa, equilíbrado, exp balanceado e testado pelos jogadores! O servidor tem: (*) Sistema de bônus Addon (bônus para ganhar o addon completo) , (*) Lottery System (em que um jogador que recebe um item aleatório de algumas em alguas hores, configurem no server e no site), (*) Sistema de Treiners inovador (Monks treiners sem filas e de espera !), (*) Sistema de House (depois de entrar no tp irás para uma zona onde exista uma casa livre), (*) Sistema de Boss (Predator - o melhor monstro no servidor), (* ) Hall of Fame (as estátuas para os melhores jogadores do servidor), (*) Rust sistema removedor (alterações enferrujados no script para o item selecionado), (*) sistema Jail (prisão, que prende o automaticamente quando o GM o bem entender), (*) stall Skill (quanto mais habilidade você pode mudar o multiplicador de skill, mlvl), (*) A distribuição de itens ao alcançares certo nivel (na promoçãovocê recebe uma recompensa) (*) Profissões Balanceadas (o que permite que o jogo seja jogado de forma igual) O MAPA TEM: (*) Um belo mapa EVOLUTION - Mais de 300 respawns, 50 missões, mais de 50 teleportes para monstros, 250 casas, o peso está acima do mapa 50MB! (*) Teleportes para os monstros, foi feito para aquele jogador que não tem muito tempo para encontrá-los!), (*) itens Balance (prontos no shop), (*) Stages de Experiencia (uma forma de stages que foi popular com os jogadores), (*) Eu adicionei alguns comandos muito importantes tais como !online,!spells, !bless, !addon xxx, !premium, !promotion, !soft, !fire, !bp, !rope, entre muitos outros, (*)Sistema unico de comprar Potions e runes por alavanca, (*) Adicionei alguns eventos como Arena, (*) Adicionei a minha base de dados sql para tenar ajudar alguem! Pronto foi apenas um pequeno resumo de algumas coisas que podem encontrar no servidor. Vou colocar algumas imagens para poderem ja avaliar algumas partes. Sistema de trainers único onde players nunca se encontram nem precisam esperar para treinar e com uma rune de mana para poderem recuperar a mana e não podem pegar nela. Templo unico e inovador Alguns Teleportes para areas hunt, são mais de 50 teleportes Sistema de comprar potions e runes por alavanca, apenas compra uma pois sao infinitas. Teleportes para muitas Questes Alguns itens "VIP" Muitas Casas Quests para first itens, quem quizer pode remover e colocar first itens automático no creatures.xml Executável limpo sem erros. Alguns Eventos Depot E pronto ai esta mais um dos meus serveres, espero que gostem, alguma duvida coloquem, antes de clonar meu server ou postar em outro forum peçam autorização. Não custa agradecer, nem postar um obrigado, mas acima de tudo um REP+ pois partilhei com voces por voluntário e a voces nao custa nada agradecer. Créditos: CrAzYBoY TiXa (minha esposa) Collocorpusek otsmateria1 ponto -
VENHO TRAZER O MEU SERVER ARRUMADO E SEM BUGS NAO QUIS MAIS ABRIR MEU SV ENTAO VO POSTA OQ TEM NELE: Kame Vocation Raditz Vocation C16 Vocation & Muito Mais... Shenron Novas Transforms Novas Spells Fusoes melhoradas (Todos, Escrever: fusion) Escreva "Transform" Ou Escrever: transformar. Taxa de equilibrio (Aproximadamente 90% dos Skill) Monstros Dividido com "nivel" Armas Melhoradas e Com porcentagem de leveL ARRUMEI TODOS OS BUGS MENOS DO BOL (AOL) QUE EU N CONSEGUI E TAMBEM TODOS OS BUGS DO SITE. SS DO SITE : DEPOIS EU COLOCO SS's DO SERVER ! DOWNLOAD's : Cliente: https://www.mediafire.com/?gob4q7ksfj0w39h Server : http://www.mediafire...klkkxzgbwl9am0n Site : http://www.mediafire...b6f4eks2qlf8bsi Creditos : CRAZZY (PELO MAPA) EU (POR ARRUMAR OS BUGS MAPA E SITE) MEU IRMAO (POR ME AJUDAR NO SERVIDOR) MATHEUSVIDALOKA (PELO CLINTE) TE AJUDEI ME DA 1 REP++ AEW CUSTA NADA! * 11/02/2014 - CLIENTE RE-UPADO. NEM SABIA QUE TINHA QUEBRADO O LINK MALS.1 ponto
-
[8.6] Lumast Map V1.0.0 70% Proprio (Xp Alta)
SevenOT reagiu a HannibalsOTs por um tópico no fórum
Fala galera do XTibia, tudo na paz ? Venho aqui apresentar meu novo trabalho. Um mapa 70% próprio. Eu estava sem nada para fazer, entao resolvi criar um mapa de bobeira, e depois de um tempim fazeno ele, comecei a gostar dele e o aprimorei. Bom, então vamos deixar de papo e vamos conhecer o mapa. Informações sobre o Map: Existem 2 cidades no Servidor. 1 city free e uma vip. 9 Hunt's Free e 5 VIP's 2 Novas Vocation's 2 Quest's. Apenas para as vocations (1 quest free e a outra vip) Fast Atk adicionado no servidor Sistema de Compra de Iten vip por baú. (Voce tendo os VIP Coins, apenas de use no Bau e voce recebe o item) Compra de Points VIP por comando (!coin) Comandos novos para VIP's (Ex.: !b \ fala para todos os players online com a sigla [VIP] antes do nome) As 2 novas vocations para adquiri-las precisa ser feito quest (First Promotion: level 300k+ = Free \ Second Promotion: level 650k+ = VIP) Bom, vamos deichar de lado o nosso papo e vamos ver as SS. Temple: Temple VIP: Amostra VIP: Comprando item vip pelo bau: Comprando item vip de 1 mes: Link de Download da Pasta: (Link Arrumado) http://www.4shared.com/rar/5IGA4_CP/86_Lumast_Server_V100_3.html? Scan: https://www.virustot...sis/1336047521/ Link de Download do Distro e Dlls: http://www.4shared.c...ro_e_Dlls.html? Scan: https://www.virustot...sis/1336049191/ Senha do GOD: god/god Gostou do Map ? Da um REP+ ai nao custa nada ^^ Créditos: 90% Meu 5% Doidin (Pelo Distro e Dlls) 5% de alguns membros do XTibia pelos Scripts (Peço desculpas por ter postado pela primeira vez e ter vindo com virus, mas ele era nas Dlls, então as troquei)1 ponto -
[Action] Novo Sistema Reset E Troca De Vocação Por Quest!
Wores reagiu a JeanCristian por um tópico no fórum
Ola Galerinha da Xtibia ,Venho trazer meu primeiro post. Xtibiano: Oque esse script fáz? Eu: Ele troca de vocação para a vocação que você colocar volta ao level 8 e reseta sua mana e life. Xtibiano:Como eu coloco ele? Eu: Vai na pasta do seu servidor e entre nessa pasta ( data/action/scripts ) Copie qualquer arquivo que esta em notpad e cole denovo ,troca o nome para resetquest clica com o botão direito do mouse vai em editar ... vai abrir uma janela para escrever vc apaga tudo oque há dentro dela e cole oque eu vou te mandar agora. Xtibiano:Manda!!! Eu: Xtibiano:Ahhh mais aconteceu um bug porque desse bug? Eu: Vou te falar os Prés Requisitos para usar esse sistema 100% funcionando.....Em sua vocation.xml precisa estar o mesmo tanto de mana e vida para a vocaçao exemplo knight ganha 10 de vida e 10 de mana dai ele vai resetar e ficar com 185 de life e 35 de mana , mais se estiver 15 de life e 5 de mana a quest buga vc nao via ficar com 185 de life e 35 de mana vc vai voltar level 8 com a nova vocaçao e com um pouco amenos de life e mana doque ele ja tinha. entao para funcionar vc deve ir na pasta XML e procurar o vocation.xml e editar o gainhp="15" gainmana="15" para ficar igual dai o script pega Xtibiano: Mais porque desse bug se eu nao mecher no xml? Eu: Sou Mapper Não sei nada de Scripts mais sou muito curioso. Eu estava com um script que peguei aqui na xtibia no meu OtServer. Só que o Script não pegava, Mais fazia a função que eu queria e nao tem outro ingual a ele. Chamei o Jhon ele ajuda todo mundo em script e pedi ele para me ajudar no meu. Eu e ele ficamos umas 2 horas tentando fazer o script funcionar e o script nao funcionava. Até que uma hora ele desistiu ,Porque como eu disse sou Mapper e nao Scripter. Eu só ia testando oque ele fazia quem estava sofrendo era ele. Mais indo direto ao assunto ,Eu (Curioso) fui fuçando no script e uma hora eu consegui foi com 1 vocaçao só mais consegui depois de colokar uma coisa tirar outra colokar denovo copiar cola muita locura eu Finalmente consegui deixar quase bom. Eu nao sou scripter por isso nao arrumei esse requisito mais sei doque precisa. o erro que ele da é o seguinte se vc nao fazer o pré requisito ,a primeira funçao do script é trokar de vocaçao ,entao se vc e kina e tem 1500 de life e 500 a 3 função é fazer o char perder o level que ganho e decer a vida e mana de cada level que no caso se fosse a 2 funçao ia sair perfeitamente oque estrago o script foi a 2 funçao que troka de vocação ,voce vira a nova vocaçao esta com 1500 de life e 500 de mana dai ativa a 3 funçao vc perde o a mana e a vida que conseguiu ,que no caso vc é a outra vocaçao vai sair diferente a mana e a vida que ia sair se fosse kina dai ai que a merda ta feita no negocio da health... postei esse script aki porque da para usar se mecher na xml e porque vi varios player pedindo e nunca acharam ,se alguem puder arrumar essa coisa minima para eu vai ajudar muita gente Se estiver area errada MOVE por favor Mas pelas regras esta tudo certo. Creditos 100% ao Jhon o Estagiario, se nao fosse ele eu nao conseguiria fazer nenhuma cagada Xtibiano: Só falto a tag né? ¬¬ Eu : tai manim malz ponha no action.xml <action actionid="3253" event="script" value="other/resetquest.lua"/> Obs: Ele não reseta as skill . Por Enquanto vou tentar arrumar Se nao abrir o spoliers eu vou postar por code. ae arrumei todos erros e bugs esta facil de configurar e só nao colokei para resetar skills ainda todos erros arrumados só nao colokei para resetar skills1 ponto -
[Talk] Cs War Tibia! -- V2 Atualizado 20/10/2010
Vilden reagiu a drakylucas por um tópico no fórum
V2 AGORA! comandos para players: !arma -> exibe a arma que o player está usando atualmente !atirar -> atira caso tenha arma, cada arma tem seu dano,velocidade e tempo de intervalo regulados. !b -> exibe tela com os tipo de armas que podem ser comprados (e com o tutorial de como compra-las) !g -> joga sua arma no chão para poder comprar outra. como pediram: Identico ao cs. todas as armas. gogo =D XML: <talkaction log="yes" words="!atirar;!b;!b1;!b2;!b3;!b4;!b5;!g;!b11;!b12;!b13;!b14;!b15;!b21;!b22;!b31;!b32;!b33;!b34;!b41;!b42;!b43;!b44;!b45;!b46;!b51;!arma" event="script" value="tiros.lua"/> agora crie um arquivo chamado tiros.lua e coloque isso: function buy(cid,numero) return getPlayerStorageValue(cid,numero) end function onSay(cid,words,param) -- [nao mexa] = {distancia maxima,velocidade,delay entre os tiros, "msg animada" , math.random(min,max)} local arsenal = { [13251] = {4,200,2,"no Pé",math.random(1,8),"9X19MM SIDEARM"}, [13252] = {4,215,2,"no Braço",math.random(1,10),"KM .45 TACTICAL"}, [13253] = {4,215,2,"no Braço",math.random(1,10),"228 COMPACT "}, [13254] = {5,170,2,"na Perna",math.random(15,35),"NIGHT WALK .50C"}, [13255] = {5,175,2,"na Perna",math.random(15,35),"ES FIVE-SEVEN"}, [13261] = {6,220,5,"UGHHH",math.random(23,35),"LEONE 12 GALGUE SUPER"}, [13262] = {6,220,3,"UGHHH",math.random(15,30),"LEONE IG1265 AUTO"}, [13271] = {7,175,2,"no Pé",math.random(1,8),"SCHMIDT MACHINE"}, [13272] = {7,170,2,"no Braço",math.random(1,10),"KM SUB-MACHINE GUN"}, [13273] = {7,170,2,"no Pé",math.random(1,8),"KM UMP45"}, [13274] = {7,160,2,"no Braço",math.random(1,10),"ES C90"}, [13281] = {5,180,1.5,"no Peito",math.random(25,65),"CLARION 5.56"}, [13282] = {7,186,2,"no Peito",math.random(25,65),"SCHMIDT SCOUT"}, [13283] = {6,170,1.5,"Nut Shot",math.random(25,75),"MAVERICK M4A1"}, [13284] = {5,160,1.5,"no Peito",math.random(25,65),"BULLPUP"}, [13285] = {6,170,2,"Nut Shot",math.random(25,75),"KRIEG 550 COMMANDO"}, [13286] = {8,145,3,"Head Shot",math.random(80,100),"MAGNUM SNIPER RIFLE"}, [13291] = {7,165,8,"Errou",0,"M249"}, } local armamento = arsenal[getPlayerStorageValue(cid,13245)] if words == "!b" then doPlayerPopupFYI(cid, "Sell:" .. "\n1 - PISTOLS" .. "\n2 - SHOTGUNS" .. "\n3 - SMG" .. "\n4 - RIFLES" .. "\n5 - MACHINE GUNS" .. "\n" .. "\nSay '!b + number' -> example:" .. "\n!b1 for open PISTOLS Sellers." ) end if words == "!b1" then -- PISTOLS doPlayerPopupFYI(cid, "Sell:" .. "\n11 - 9X19MM SIDEARM --- 4000 GOLD COINS" .. "\n12 - KM .45 TACTICAL --- 5000 GOLD COINS" .. "\n13 - 228 COMPACT --- 6000 GOLD COINS" .. "\n14 - NIGHT WALK .50C --- 6500 GOLD COINS" .. "\n15 - ES FIVE-SEVEN --- 7500 GOLD COINS" .. "\n" .. "\nSay '!b + number' -> example:" .. "\n!b14 for buy NIGHT WALK .50C (DESERT EAGLE)." ) end if words == "!b2" then -- SHOTGUNS doPlayerPopupFYI(cid, "Sell:" .. "\n21 - LEONE 12 GALGUE SUPER --- 17000 GOLD COINS" .. "\n22 - LEONE IG1265 AUTO --- 30000 GOLD COINS" .. "\n" .. "\nSay '!b + number' -> example:" .. "\n!b21 for buy LEONE 12 GALGUE SUPER." ) end if words == "!b3" then -- SMG doPlayerPopupFYI(cid, "Sell:" .. "\n31 - SCHMIDT MACHINE --- 12500 GOLD COINS" .. "\n32 - KM SUB-MACHINE GUN --- 15000 GOLD COINS" .. "\n33 - KM UMP45 --- 17000 GOLD COINS" .. "\n34 - ES C90 --- 23500 GOLD COINS" .. "\n" .. "\nSay '!b + number' -> example:" .. "\n!b34 for buy ES C90." ) end if words == "!b4" then -- RILES doPlayerPopupFYI(cid, "Sell:" .. "\n41 - CLARION 5.56 --- 22500 GOLD COINS" .. "\n42 - SCHMIDT SCOUT --- 27500 GOLD COINS" .. "\n43 - MAVERICK M4A1 --- 31000 GOLD COINS" .. "\n44 - BULLPUP --- 35000 GOLD COINS" .. "\n45 - KRIEG 550 COMMANDO --- 42000 GOLD COINS" .. "\n46 - MAGNUM SNIPER RIFLE --- 47500 GOLD COINS" .. "\n" .. "\nSay '!b + number' -> example:" .. "\n!b46 for buy MAGNUM SNIPER RIFLE(AWP)." ) end if words == "!b5" then -- RILES doPlayerPopupFYI(cid, "Sell:" .. "\n51 - M249 --- 57500 GOLD COINS" .. "\n" .. "\nSay '!b + number' -> example:" .. "\n!b51 for buy M249(RAMBO)." ) end local comprar = { ["!b11"] = {13251,4000}, ["!b12"] = {13252,5000}, ["!b13"] = {13253,6000}, ["!b14"] = {13254,6500}, ["!b15"] = {13255,7500}, ["!b21"] = {13261,17000}, ["!b22"] = {13262,30000}, ["!b31"] = {13271,12500}, ["!b32"] = {13272,15000}, ["!b33"] = {13273,17000}, ["!b34"] = {13274,23500}, ["!b41"] = {13281,22500}, ["!b42"] = {13282,27500}, ["!b43"] = {13283,31000}, ["!b44"] = {13284,35000}, ["!b45"] = {13285,42000}, ["!b46"] = {13286,47500}, ["!b51"] = {13291,57500}, } local buyarmas = comprar[words] if buyarmas ~= nil then if buy(cid,13251) >= 1 or buy(cid,13252) >= 1 or buy(cid,13253) >= 1 or buy(cid,13254) >= 1 or buy(cid,13255) >= 1 or buy(cid,13261) >= 1 or buy(cid,13262) >= 1 or buy(cid,13271) >= 1 or buy(cid,13272) >= 1 or buy(cid,13273) >= 1 or buy(cid,13274) >= 1 or buy(cid,13281) >= 1 or buy(cid,13282) >= 1 or buy(cid,13283) >= 1 or buy(cid,13284) >= 1 or buy(cid,13285) >= 1 or buy(cid,13286) >= 1 or buy(cid,13291) >= 1 then return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Voce nao pode comprar mais armas estando com uma. digite !g para se livrar de sua arma.") end if doPlayerRemoveMoney(cid, buyarmas[1]) == FALSE then return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Você tem que ter "..buyarmas[2].." gold coins.") end setPlayerStorageValue(cid,buyarmas[1],1) -- teste -- setPlayerStorageValue(cid,13245,buyarmas[1]) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Você comprou uma arma.") end if words == "!g" then if buy(cid,13251) >= 1 or buy(cid,13252) >= 1 or buy(cid,13253) >= 1 or buy(cid,13254) >= 1 or buy(cid,13255) >= 1 or buy(cid,13261) >= 1 or buy(cid,13262) >= 1 or buy(cid,13271) >= 1 or buy(cid,13272) >= 1 or buy(cid,13273) >= 1 or buy(cid,13274) >= 1 or buy(cid,13281) >= 1 or buy(cid,13282) >= 1 or buy(cid,13283) >= 1 or buy(cid,13284) >= 1 or buy(cid,13285) >= 1 or buy(cid,13286) >= 1 or buy(cid,13291) >= 1 then setPlayerStorageValue(cid,13251,-1) setPlayerStorageValue(cid,13252,-1) setPlayerStorageValue(cid,13253,-1) setPlayerStorageValue(cid,13254,-1) setPlayerStorageValue(cid,13255,-1) setPlayerStorageValue(cid,13261,-1) setPlayerStorageValue(cid,13262,-1) setPlayerStorageValue(cid,13271,-1) setPlayerStorageValue(cid,13272,-1) setPlayerStorageValue(cid,13273,-1) setPlayerStorageValue(cid,13274,-1) setPlayerStorageValue(cid,13281,-1) setPlayerStorageValue(cid,13282,-1) setPlayerStorageValue(cid,13283,-1) setPlayerStorageValue(cid,13284,-1) setPlayerStorageValue(cid,13285,-1) setPlayerStorageValue(cid,13286,-1) setPlayerStorageValue(cid,13291,-1) setPlayerStorageValue(cid,13245,-1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Você se livrou de sua arma.") else return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Você não tinha arma.") end end if words == "!atirar" then local storage = 13243 if armamento == nil then return doPlayerSendCancel(cid,"Voce precisa comprar uma arma, digite !b") end if getTilePzInfo(getCreaturePosition(cid)) == TRUE then return doPlayerSendCancel(cid,"Voce só pode atirar fora da protection zone.") end if os.time() - getPlayerStorageValue(cid,storage) <= armamento[3] then return doSendAnimatedText(getCreaturePosition(cid), "Reloading", math.random(1,255)) end setPlayerStorageValue(cid,storage,os.time()) -- SCRIPT BY DRAKY LUCAS -- -- [de 1 a 10] = {"fala",math.random(dano minimo,dano maximo) em percentagens}, local falas = { [1] = {"Head Shot",math.random(80,100)}, [2] = {"Nut Shot",math.random(25,35)}, [3] = {"na Perna",math.random(10,25)}, [4] = {"no Peito",math.random(50,75)}, [5] = {"no Pé",math.random(1,10)}, } local i = 1 local tempo = armamento[2] local max = armamento[1] -- numero de repetiçoes repeat local direction = getPlayerLookDir(cid) position = getCreaturePosition(cid) if(direction == NORTH) then position.y = position.y - (i/tempo) elseif(direction == SOUTH) then position.y = position.y + (i/tempo) + 1 elseif(direction == WEST) then position.x = position.x - (i/tempo) elseif(direction == EAST) then position.x = position.x + (i/tempo) + 1 end position.stackpos = 253 local pos = {x = position.x,y = position.y, z = position.z} pos.stackpos = 253 if getTilePzInfo(pos) == TRUE then break end if getThingfromPos(pos).itemid > 0 then local fala = falas[math.random(1,10)] if fala == nil then if addEvent(isPlayer,i,getThingfromPos(pos).uid) then addEvent(doCreatureAddHealth,i,getThingfromPos(pos).uid,-(getCreatureMaxHealth(getThingfromPos(pos).uid)/100)* armamento[5]) addEvent(doSendMagicEffect,i,pos,64) addEvent(doSendAnimatedText,i,pos, armamento[4], math.random(1,255)) break end end if addEvent(isPlayer,i,getThingfromPos(pos).uid) then addEvent(doCreatureAddHealth,i,getThingfromPos(pos).uid,-(getCreatureMaxHealth(getThingfromPos(pos).uid)/100)* fala[2]) addEvent(doSendMagicEffect,i,pos,64) addEvent(doSendAnimatedText,i,pos, fala[1], math.random(1,255)) break end break end addEvent(doSendMagicEffect,i,pos, 4) i = i + tempo until i >= tempo * max end -- do if word == atirar.. if words == "!arma" then if getPlayerStorageValue(cid,13245) <= 0 then return doPlayerSendTextMessage(cid,25,"Você não tem arma.") end doPlayerSendTextMessage(cid,25,"Você está usando uma "..armamento[6]..".") end return TRUE end Créditos: Eu (DrakyLucas) e Ricardo Ripping é crime. PROIBO postagem em outro fórum BRASILEIRO. Se for postar em um fórum INGLES colocar os devidos créditos. ATUALIZADO DIA 20 DE OUTUBRO DE 2010 AS 15:21 (HORÁRIO DE VERÃO). plz comentz =d1 ponto -
Peça Seu Client Proprio
PokemonLegendarios reagiu a superdrako por um tópico no fórum
Eae galera do :XTibia_smile: , hoje estou aqui para mostrar meu projeto para que voces possam ter seus clients proprios , sei que muitos nao conseguem entao decidi criar esse topico para ajudar voces Bom irei mostrar umas fotos do meu projeto para : Pokemon e tibia :smile_positivo: Tibia : http://img825.imageshack.us/i/clientproprio.png/ Pokemon : ( ja vem com a tibia.dat e tibia.spr configurada. ) http://img143.imageshack.us/i/projetog.png/ Como fazer seu pedido ? NOME DO CLIENT: VESRSÃO DO CLIENT: (8.10 a 8.70) BACKGROUND: (apenas arquivos .png,.jpeg e .jpg) IP DO SEU SERVIDOR: DESEJA RECEBER O CLIENT: msn , privado , aqui Se postei no lugar errado movam por favor ^^ ( Este e meu primeiro topico )1 ponto -
Nome: Perfect Upgrade System Tipo: Biblioteca, Action, Sistema Autor: Oneshot Essa é a versão final do Perfect Refine System ou Perfect Upgrade System criado por mim. É um sistema construído em cima de funções em POO (orientação a objetos), o que o torna muito versátil, possibilitando a outros programadores/scripters criarem seus próprios sistemas com base na biblioteca. A função do sistema é simples. Não passa de um sistema de refino, presente em todos os servidores, onde você usa um item em um equipamento e este fica mais forte e ganha um nome caracterizando o nível de força - bem clichê - mas muito interessante. Meu sistema é um pouco diferente dos outros, pois possui algumas características exclusivas, listadas abaixo: O nível máximo configurável é praticamente ilimitado O sistema funciona com armas de combate corpo-a-corpo, bows e crossbows. O refino pode falhar, não acontecendo nada, regredindo o nível ou resetando ele. Há um sistema nativo de broadcasts, que são enviados quando um jogador consegue refinar um equipamento até um certo nível ou maior. As chances são configuradas manualmente e sua randomização é muito precisa. Há dois modos de instalar o sistema em seu servidor, o primeiro é baixar a pasta com os scripts necessários e apenas copiar as chaves nos arquivos XMLs ou então seguir o curto tutorial de instalação. Crie um arquivo chamado upgradesystem.lua na pasta data/lib e copie o conteúdo abaixo: --[[ PERFECT UPGRADE SYSTEM 2.0 Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- UpgradeHandler = { levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} }, broadcast = 7, attributes = { ["attack"] = 2, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 3) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, {__index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end})) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1"))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else if(self.levels[self.item.level][3] == true and (self:chance().erase * 100) > math.random(1, 10000)) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.erase:format(self.item.name)) self:setItemName(self.item.name) for key, value in pairs(self.attributes) do if self.item[key] > 0 then doItemSetAttribute(self.item.uid, key, self.item[key]) end end elseif(self.levels[self.item.level][2] == true and (self:chance().downgrade * 100) > math.random(1, 10000)) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.downgrade:format(self.item.name, (self.item.level - 1))) self:setItemName((self.item.level == 1 and self.item.name or self:getItemName():gsub("%+(%d+)", "+".. (self.item.level - 1)))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item[key] + value * (self.item.level - 1))) end end else doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.fail:format(self.item.name, (self.item.level + 1))) end return "fail" end end Crie um arquivo chamado upgrade.lua em data/actions/scripts e cole o conteúdo abaixo: function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end local obj = UpgradeHandler:new(itemEx) if(obj == false) then return doPlayerSendCancel(cid, UpgradeHandler.message.notupgradeable) end local status = obj:refine(cid, item) if status == "success" then --doSendAnimatedText(toPosition, "Success!", COLOR_GREEN) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) elseif status == "fail" then --doSendAnimatedText(toPosition, "Fail!", COLOR_RED) doSendMagicEffect(toPosition, CONST_ME_POFF) else doSendMagicEffect(toPosition, CONST_ME_POFF) end return true end No arquivo actions.xml, cole a seguinte linha: <action itemid="8306" event="script" value="upgrade.lua"/> Para adicionar mais níveis de refino no sistema, edite a seguinte tabela: levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true} }, Por padrão, ela já está configurado como na maioria dos MMORPGs, 10 níveis de refino, com chances de sucesso, regressão e "quebra". Mas se você quiser, por exemplo, adicionar mais dois níveis, siga o modelo, sempre colocando uma vírgula no final com exceção da última linha da tabela: levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} }, O primeiro valor é chance de sucesso, o segundo se o item pode regredir na tentativa e o terceiro é se o item para "quebrar" (perder todo o nível de refino). Para criar novas ferramentas (itens) de refinar, configure a tabela abaixo: tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, Seguindo o mesmo esquema da tabela anterior, vírgulas em todas as linhas com exceção da última, seguindo o modelo abaixo. Por exemplo, uma ferramenta de ID 8303 que refine do level +6 ao +10, que dê 10% de chance bônus e que seja finita, eu faço assim: tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8310] = {range = {6, 10}, info = {chance = 10, removeable = true}} }, Em breve vídeo de demonstração com sistema em funcionamento. Perfect Upgrade System.rar1 ponto
-
Bom esse é meu primeiro post de script vamos ver se da tudo certo ^^ vá em data>globalevents>scripts cria uma arquivo com nome texto.lua agora vá em data>globalevents>globalevents.xml e coloque essa tag <globalevent name="texto" interval="2" script="texto.lua" /> pronto unica coisa é edita as falas do "teleport" e a position se gostou da um rep+ :ange: :button_ok:1 ponto
-
When the whole world is about to fall, a hero must rise... Elysium Online - Open Tibia Server O projeto Elysium Online tem o objetivo de criar um novo servidor com RPG, diversão e novidades. O servidor trará muita inovação em todos os setores que compõe um OTServer, tentando melhorar ao máximo a experiência de se jogar em um servidor alternativo de Tibia. Com o passar do tempo, os servidores de Tibia foram perdendo sua antiga criatividade, originalidade e assim foram se estabelecendo servidores iguais, chatos e sem nada de novo. A monotonia é algo que o nosso projeto quer quebrar, trazendo novos conceitos aos servidores. Neste tópico apresentaremos tudo isto que queremos fazer ao criarmos o Elysium Online. Roleplay Elysium é um mundo enorme e medieval, onde existem vários contos, lendas, criaturas e monstros. No que se conhece atualmente, existem três massas de terra consideradas continentes — Lortherun, Gelida e Nalbina — e algumas ilhas, as quais podem ser paradisíacas e mortalmente perigosas ao mesmo tempo. Os humanos, raça jovem, porém dominante em Elysium, firmaram três reinos que atualmente habitam os vastos continentes do mundo. Estes reinos são Beltheron, de Lortherun, Deltera, de Nalbina e Falkstold, de Gelida. Cada reino é governado por um ambicioso monarca, que está sempre procurando por novos vassalos para servi-lo em suas guerras. Mas Elysium também é habitada por outros povos, estes mais antigos do que os humanos. Os Elfos são um dos povos mais antigos e sábios, residem afastados dos outros povos, pois são muito arrogantes e não costumam compartilhar seus conhecimentos com outras raças. Quem deseja aprender as habilidades arcanas dos elfos, deve primeiro provar sua lealdade a eles. Os Anões, povo minerador que reside nas montanhas de Turin, focam suas longas vidas na busca por minérios raros. possuem uma estatura que faz jus ao seu nome, mas podem ser muito perigosos quando equipados com suas pesadas armaduras e suas esplendorosas maças e martelos de guerra. Os Dragões são criaturas arcanas extremamente poderosas e sua raça é muito complexa. Assim como os elfos, são imortais, apenas podem ser mortos em batalha. A eles foi confiado o controle sobre os cinco elementos, e, embora todos possuíssem poder sobre os cinco, eles frequentemente se especializam em apenas um. Outras raças também existentes em Elysium são os Orcs, os Minotauros, os Goblins, os Trolls, os Lagartos, os Ciclopes, e outras menores. As bibliotecas das cidades possuem mais informações sobre todas elas. Elysium dispõe de uma grande ilha chamada Ghondum. Esta ilha é considerada muito importante para todas as monarquias pela academia que lá existe. Esta é chamada de Valéndil, e treina jovens guerreiros que desejam seguir uma vida de perigo e aventuras. Esta ilha foi disputada por muito tempo pelas três monarquias que lutavam para possuir todos os novos recrutas que saíam de Ghondum. Várias batalhas foram acarretadas por isto, mas por fim foi resolvido que ela seria compartilhada. Quando um recruta chega a Valéndil, ele é submetido a Tevarin, responsável pela grande academia, com ele, os aventureiros devem escolher a sua vocação: 1. Cavaleiros (Iniciais Soldados) São uma vocação com grande poder físico e uma incomparável defesa, a qual é resultado da sua grande quantidade de vida e o uso de suas pesadas e fortes armaduras e escudos. São capazes de usar a maioria das armas de corpo-a-corpo, como a espada e o machado. Também são capazes de usar maças e martelos, mas de um modo bastante restringido, visto que esta é a especiaria dos paladinos. Seu poder mágico é focado no ataque de curta distância, podendo apenas usar uma magia que arremessa sua arma em um oponente. Sua habilidade de cura é pequena, possuindo poucas habilidades relacionadas a este tipo de magia. 2. Arqueiros (Iniciais Caçadores) Como seu nome já diz, baseiam seu ataque na longa distância. Por dependerem de agilidade e velocidade, usam armaduras leves e mais fracas, no entanto, compensam sua fraqueza com seu poderoso ataque. Na academia, eles apenas usam estilingues. Ao irem para os continentes, possuirão a habilidade de empunhar lanças, Apenas mais tarde poderão usar arcos. As armas mais avançadas dos arqueiros são as shurikens e as facas. Possuem magias de ataque e boa habilidade de cura. 3. Paladinos (Iniciais Sentinelas) São guerreiros de extrema força corporal, que além de terem um excelente ataque e defesa, possuem uma impressionante habilidade de cura. Porém, devido a imensidade do peso e tamanho de suas armas, eles se tornam lentos, e não possuem magias de ataque. Empunham maças, clavas e marretas. 4. Mago (Iniciais Feiticeiros) Possuem um grande domínio e afeição pela magia. Eles aprendem a controlar os elementos basicamente em Ghondum. No entanto, para se especializarem em algo, deverão prestar missões para os elfos (divino ou mortífero) ou então aos dragões (terra, fogo, água, ar). Empunham as famosas varinhas, evoluindo-as de acordo com o nível do jogador. Para se defender, empunham livros que podem ajudar no aumento do nível mágico. Possuem as mais fracas armaduras, valorizando a leveza e a defesa elemental. 5. Bárbaros (Iniciais Mercenários) Nômades, não se afiliam a reinos, mas podem trabalhar para eles como mercenários. Os bárbaros podem também trabalhar como caçadores de recompensas, exterminando alvos por uma quantidade em dinheiro (estipulada pelo cliente pagante no site). Os bárbaros podem usar armas tanto de longa distância (bestas) quanto de curta (Machados). Possuem uma montaria própria, um lobo, o qual é ganho ao entrar na academia e com o passar do tempo vai crescendo e evoluindo. 6. Alquimistas (Iniciais Herbalistas) São feiticeiros que criam, usam e batalham com poções. Como os magos, possuem armaduras leves e fracas. Usam de líquidos mágicos para aumentar sua força defensiva, mas também usam escudos leves para se reforçar. Atacam usando seus frascos explosivos, venenosos ou de outras forças perigosas. ás vezes podem usar algumas varinhas, não se especializando nelas. Possuem alguns poucos feitiços de ataque e cura. Mas a maioria utiliza poções. Mapa Dispondo das mais diversas paisagens, o mundo de Elysium esconde muitas surpresas desde o Norte Sombrio de Lortherun até o ponto mais congelante ao sul de Gelida. A equipe experiente de mappers do projeto procura sempre levar em consideração os fatores coerência, jogabilidade, roleplay e detalhamento, avaliando cada pedra posicionada no mapa. Um pouco desta experiência pode ser vista na página Show-off, mas você pode saber um pouco do nosso trabalho nas imagens abaixo: Características Como já dito, o projeto Elysium Online pretende trazer inovação em todos os setores do otserver, aqui mostraremos algumas das muitas novidades em nosso server. Tanto sistemas em lua, como distro e cliente serão modificados. Abaixo listamos algumas modificações que estarão disponíveis no lançamento do servidor. Para ver a lista completa clique aqui. Forja/Aprimorar Na criação/upgrade de um item, vários fatores influenciam: A fornalha usada poderá variar de qualidade, como se dependesse do ferreiro, a qualidade do item produzido. Por exemplo, uma fornalha situada em cidades de anões seriam as melhores forjas do game, pois os anões são os mais habilidosos ferreiros de todos. Algumas fornalhas, em geral as mais simples são livres, já outras serão apenas liberadas por missões, como matar uma certa quantia de monstros para o dono da forja, ou levar uma determinada quantia de um mineral para que ele possa repor seu estoque, entre outros! Além disso, se você se descuidar, poderá ser queimado e perder vida. Para aprimorar itens, você deve forjar uma pedra de aprimoramento (existem 3 níveis) e usá-la em uma arma/equipamento. Mineração Um sistema até comum, mas com algumas modificações. Se você manusear sua picareta mal, poderá perder HP por ser acertado por estilhaços e/ou quebrar sua ferramenta. Haverão novas pedras especiais para serem mineradas, e cada uma dará minerais diferentes, que podem ser usados para vários fins, entre elas aumentar as propriedades de um item ou forjar. Tradução Nossos servidores possuirão completa tradução para o português, desde itens, monstros e cliente, ajudando novos jogadores a se integrar no mundo de Elysium. Plantação Nas cidades você pode comprar casas comuns, ou então fazendas. Como assim? Uma fazenda é um terreno com um armazém e uma área destinada ao plantio de ervas, frutas, legumes, etc. Em alguns poucos casos haverão estábulos e outras regalias que farão da fazenda um bem muito caro. A plantação será muito útil para cultivar itens que poderão ser usados para fazer poções com o sistema de alquimia. Um detalhe, os mais raros ingredientes apenas podem ser encontrados em áreas escondidas e perigosas, sem a possibilidade de cultivo. Roubo Quando um reino perde de outro em uma batalha, a cidade sofrerá constantes ataques de ladrões, pois suas defesas estarão precárias devido a guerra. Estes, ao atacarem o jogador, poderão além de te tirar vida, lhe roubar algumas moedas! (Quando você atacar um acampamento ou um forte de bandidos, eles não lhe roubarão dinheiro, apenas tentarão matar o invasor). Transportes Neste sistema estão incluídos três novos meios de transporte: canoas, carrinhos de mina e tapetes voadores. Nestes três modos, você é transportado de sqm em sqm até o seu destino, podendo atravessar regiões inéditas e inexploráveis sem eles, como se transportar manualmente de um continente a outro. Som O servidor possuirá um sistema facultativo de som que criará efeitos sonoros e músicas temas nas cidades/áreas de caças. Ao baixar o cliente do jogo no site, o jogador tem a opção de fazer o download do Cliente com ou sem a opção de som. Se baixado, o jogador, ao executar o Launcher (Executável que liga antes do cliente, para checar atualizações e mostrar notícias), o som será ligado e logo executado. Videos: https://lh5.googleus...yicon_cn_64.png Novas Sprites É claro que não deixariamos de trazer inovação nas sprites! Possuímos um vasto arsenal de novas imagens para turbinar o servidor, desde até outfits. Staff Interessado em conhecer nossa equipe? Eis aqui os bravos heróis que fazem deste servidor realidade: Administração Geral: LordZezim / vital900 Coordenação: LordZezim (Mapping) / Liebl (Scripting) / vital900 (Engine RPG) Mapping: LordZezim / vital900 / VitorFT / GuizitoG / GuuhMaster Scripting: Liebl / jhon992 / Vaga / Vaga Enredo: Necrox / vital900 Spriting: Wodkko / Vaga / Vaga / Vaga Design: AnneMotta Programação: LordZezim / Liebl / Vaga Colaboração: MatheusEnjoy (Websites e Coordenação) Interessado em participar? Clique aqui e se inscreva! Perguntas? Deixe nos comentários! Sugestões, criticas, congratulações? Não deixe de comentar! Pedimos sinceramente a sua opinião. Gostou? Ajude-nos a divulgar, mostre o tópico para seus amigos, participe de nossas redes sociais! (Encontre-as em www.elysiumonline.info) O tópico está sujeito a mudanças constantes, então fique alerta e saiba de tudo sobre o projeto! Até mais!1 ponto
-
bom tou com um ot 8.7 que baixei do darker ele tem varios erros e quero arruma-lo bugs são: Grato pela atenção Rep + pra quem me ajudar1 ponto
-
Salve Galera! Há alguns dias tivemos um grande update no GlobalWar, que trouxe a ilha de Infernia (vídeo abaixo). Nesta ilha tem um castelo onde guilds podem disputar o domínio do mesmo. A guild que domina o castelo tem o direito de ter acesso à Lost City, que fica nos fundos do castelo e contém várias áreas de hunt totalmente privadas aos integrantes desta guild. <iframe width="560" height="315" src=" http://www.youtube.com/embed/AkaAFM2FgOQ" frameborder="0" allowfullscreen=""></iframe> A novidade é uma ilha totalmente nova para a Guild que domina o castelo. A equipe do Global War tentou criar algo totalmente inédito no mundo dos otservers, traps, pegadinhas, charadas e muito mistério em torno deste novo continente. Está esperando o que? Comece a jogar, junte sua guild e domine o castelo! Parabéns a equipe do Global War que vem cada vez mais revolucionando o mundo dos otservers.1 ponto
-
Pra início de conversa, tirei essa idéia do masquente. Só pra passar o tempo. Atualizado Usando 3DS Max.1 ponto
-
Sistema De Resets
Gabriel Couto reagiu a Lordfire por um tópico no fórum
Não é aqui não cara, mais pra baixo tem uma grande seção chamada OTSERV para tratar de assuntos de OTSERV1 ponto -
Eu usei o de 1gram da ****** e aguento de boa..1 ponto
-
va em data / talkaction / scripts / e renome qualquer arquivo.lua para fly e add isso tudo la dentro dps em talkactions.xml add essa tag la espero ter ajudado ate1 ponto
-
Xp : 4000x Dedicado 24 Hs online No Lag Com Stages ! 8 a 1000 Xp 5000 1001 a 2000 Xp 4000 2001 a 3000 Xp 3000 3001 a 4000 Xp 2000 4001 a 5000 Xp 2000 4001 a 5000 Xp 1000 5001 a 1100 Xp 500... Inaugurado : 23/04/2012 8 Areas Vips Totalmente Free + Itens Editados Conseguidos No Proprio Server, e Outro Donates Para Ajudar o Server Se Manter online E 1 Area Vip Donate fast atack novos bicos editeds, novas hunts / em breve varios eventos automaticos e muito mais confira Cidades Adicionadas .. Carlin , Darashia , Thaus Alem de um Teleporte Para huntes com Bixos Super Editados ! ip: baiak-pesadao.servegame.com Acc : 1/1 Leia mais: http://baiakpesadao.webnode.com/ Crie seu site grátis: http://www.webnode.com.br1 ponto
-
Pasta Data - Spells
lucasguzella reagiu a tibiaa4e por um tópico no fórum
Pasta Enciclopedia com todos os links de outros tutoriais ! http://www.xtibia.com/forum/Pasta-Data-Enc...r-E-t99746.html Parte IV– Spells Olá depois de um tempinho (5 meses) sem tutoriais , que por varios fatores não consegui terminar no meu primeiro prazo... Essa aqui eu acredito ser um dos mais essenciais, pois algumas pessoas não compreendem bem isso, e sempre era uma dúvida constante no msn que eu não consegui sanar , por falta de material... Começaremos pelo spells.xml <spells> <!-- Attack Runes --> <rune name="Poison Field" id="2285" allowfaruse="1" charges="3" lvl="14" maglv="0" exhaustion="2000" blocktype="solid" script="attack/poison field.lua"/> <!-- Attack Spells --> <instant name="Death Strike" words="exori mort" lvl="16" mana="20" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" script="attack/death strike.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <!-- Summon Spells --> <instant name="Summon Creature" words="utevo res" lvl="25" params="1" exhaustion="2000" needlearn="0" function="summonMonster"> <vocation name="Sorcerer"/> <vocation name="Druid"/> <vocation name="Master Sorcerer"/> <vocation name="Elder Druid"/> </instant> <!--Conjure Runes --> <conjure name="Conjure Arrow" words="exevo con" lvl="13" mana="100" soul="1" conjureId="2544" conjureCount="10" exhaustion="1000" needlearn="0" function="conjureItem"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Enchant Spear" words="exeta con" lvl="45" mana="350" soul="3" prem="1" conjureId="7367" reagentId="2389" exhaustion="1000" needlearn="0" function="conjureItem"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Energybomb" words="adevo mas vis" lvl="37" mana="880" soul="5" prem="1" reagentId="2260" conjureId="2262" conjureCount="2" exhaustion="1000" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> </spells> Ai está a base de cada spell para esse arquivo. As runas são divididas em duas partes, o script da runa e de transformação da pedra em runa. Começaremos pela runa : <rune name="Poison Field" id="2285" allowfaruse="1" charges="3" lvl="14" maglv="0" exhaustion="2000" blocktype="solid" script="attack/poison field.lua"/> Essa linha acima indica o que a runa fará ao ser usada em algo, sendo os parametros : name: Isso indica o nome da runa. Esse nome é o que aparece na runa ao se dar use nela. id: Isso indica o id da runa. allowfaruse : Se a runa pode ser usada em objetos a distancia. charges: A quantidade de cargas iniciais dela lvl: Nivel minimo para ela ser usada. maglv: Nivel magico minimo para usar ela exhaustion: Tempo de exaustão para poder usar a proxima runa. blocktype: Tipo do item que será jogado. script: Arquivo que terá o script. A criação da pedra é mais simples : <conjure name="Energybomb" words="adevo mas vis" lvl="37" mana="880" soul="5" prem="1" reagentId="2260" conjureId="2262" conjureCount="2" exhaustion="1000" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> name: O nome dela, para ser sincero não se prescisa ser o mesmo do arquivo acima. words: A palavra (macumba) que você diz para fazer a transformação. lvl: Nivel para poder cria-la. mana: mana usada para conjura-la. c reagentId: Id da runa base, no caso 2260 é a blank rune. conjureId: Id da runa "magica". conjureCOunt: Quantidade de cargas da runa. exausthion: O tempo de exaustão que ela dará em milessegundos (1000 = 1 segundo) (nem sei se tem isso hj em dia ainda). needlearn: Se o player prescisará aprender ela, no caso comprar de um npc. function: No caso deixe assim, essa função que transforma agua em vinho . Lembrando que pode se usar esse tipo para transformar outros itens, como enchatted staff e depois para fazer volta-lo ao normal é só fazer ele decair. Para faze-lo mude a function para conjureItem Bem a parte de script LUA , explicarei mais abaixo, vamos continuar com as tags, porque o script LUA é mais facil Magias Espontaneas <instant name="Death Strike" words="exori mort" lvl="16" mana="20" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" script="attack/death strike.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> name: Nome dela. words: A palavra (macumba) que você diz para fazer o trabalho. lvl: Nivel para poder solta-la. mana: mana usada para solta-la. prem: Se o conjurador prescisará ser premmium ou não. range: Quantos sqm ela poderia ir de distancia. Se ativado elá irá acertar o alvo que está em ataque. blockwalls: Se ativado ela não passará por obstaculos. exhaustion: tempo de exaustão em milessgundos. selftarget: Se irá atingir ele mesmo, no caso magias de cura. needtarget: Se ativado, prescisará o player está atacando alguem. direction: Se ativado, a magia sempre sairá pela frente do player. casterTargetOrDirection: Se ativado, a magia irá em quem o player está atacando senão elas sairá pela frente do player agressive: Se elá tirará danos ou não. needlearn: Se ele prescisará aprender ou não. event: O evento delá, vocês só usarão script (ao não ser que sejam muito criativos). script: Local do arquivo de configuração. vocation name : Nome da vocação que poderá usar a magia (coloque suas promoções tbm) Ai explicamos como fazer a tag dessas magias, existem outras funções que para ser sincero são inuteis, ou necessarias apenas para 1 magia Scripts LUA Se você é uma pessoa normal, sem problemas mentais ou hiperatividade concerteza o que tiver aqui vai suprir suas necessidades, mas se você for igual eu, vai querer aprender mais. Eu costumo dizer que spells você tem ter um calculadora e paciencia para achar aquela forma e efeito. O resto é só copiar uma ja existente. O pessoal do TFS, adora fazer uns atalhos, variaveis e coisas para facilitarem a vida deles (e complicar a nossa). Se você olhar o arquivo lib da pasta spells/lib verá que tem varias formas lá... Para ser mais exato todas que eles usam nas spells do ot. Portanto memorize todas (ou como uma pessoa normal, verifique quando for fazer elas). Depois de muito bla bla bla, vamos ao que interessa. Vamos começar com nossa maravilhosa death strike local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0) local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(distanceCombat, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0) function onCastSpell(cid, var) if(variantToNumber(var) ~= 0) then return doCombat(cid, distanceCombat, var) end return doCombat(cid, combat, var) end Eu sinceramente não entendo 100% das funções vou explicar as necessarias. Nesse momento abra seu global.lua e se não tiver vá em lib/constants.lua e sempre verifique quando tiver a palavra arquivo abaixo : setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) : O tipo dela, se é dano fisico, fogo ou sei lá o que. São eles : COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) : O tipo de efeito que sairão delá, pelo amor de deus olhem no arquivo porque tem 68. (Procurem CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) : Esse é o efeito que faz ao ser disparada, ela. Ou seja, o efeito do trajeto dela. Proure no arquivo tem 37. setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0) : Esse é a grande sacada. Calculo certo !? + - A sintaxe disto é : COMBAT_FORMULA_LEVELMAGIC, -minA,Min , MaxB, mAx Sendo : MinA : Minimo calculado, ou seja valor minimo que sera calculado. Min : Minimo que a magia tirará ou dará. MaxB : Maximo de dano ao ser calculado. Max : Dano maximo fixo que dará a magia. O calculo é assim: (lvl * 2 + ml *3) * MinA ou MaxB´ Ai da um valor magico que será seu dano, oscilando entre o Min e o Max. Porém desde o tibia 7.8 o tibia mudou sua formula, e eu fazendo uns calculos criei uma nova com a função do Pedro B. function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*0.25 + maglv*3) * 0.52) local formula_max = -((lv*0.25 + maglv*3) * 0.68) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end Agora você pensa que filho de uma mãe é o Ta4e, ferrou meu cerebro... Use a que bem entender... Em tese a death strike ta feita. Se você é observador percebeu que ela tem 2 funções porém são iguais. Isso porque para o servidor ela sendo jogada no inimigo ou ela sendo falada em frente são diferentes... (Sim da para fazer ela tirar + dano de perto). Bem para quem gostou do meu metodo, a diferença fica apenas no calculo de dano. --Calculed by ta4e-- --For tibia 8.31-- --Made in 07/11/08-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*0.25 + maglv*3) * 0.52) local formula_max = -((lv*0.25 + maglv*3) * 0.68) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*0.25 + maglv*3) * 0.52) local formula_max = -((lv*0.25 + maglv*3) * 0.68) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(distanceCombat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") function onCastSpell(cid, var) if(variantToNumber(var) ~= 0) then return doCombat(cid, distanceCombat, var) end return doCombat(cid, combat, var) end Em formula_min seria o MinA e o formula Max o maxB O resto é igual... setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") Ao invés de indicarmos os valores, falamos que o resultado estará na função getCombatFormulas. Bem essa é a magia em tese + simples, vou mostrar uma magia de healing local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function getCombatFormulas(cid, lv, maglv) local formula_min = ((lv*0.25 + maglv*3) * 0.7) local formula_max = ((lv*0.25 + maglv*3) * 0.92) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Perceba que na formula ela não tem o sinal de - antes do calculo, pois ela heala e não ferra o player. Dois novos parametros apareceram setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) : Sendo false, a magia não é de ataque portanto pode ser usada em protection zones (e não tirará dano). setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) Nesse caso ela cura a condição paralyze, se você olhar no arquivo verá as condition que as magias poderão retirar (até umas versoes atrás, não era possivel remover + de 1 condição por magia. Agora uma spell que cria algo, que tal poison field ? local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1496) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Simples não ? setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1496) Id do item a ser criado no local de saida. Até agora só vimos magia que atigem 1 local certo, vamos evoluir e ver a com areas. Magias com aréas A mesma poison field pode ser mudada para poison bomb facilmente : local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1496) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Apenas adicionado a linha do createcombatArea ja faz ela criar em varios locais. Lembra do lib ? Abra ele e veja o fomrato do AREA_SQUARE1X1, AREA_SQUARE1X1 = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } 0 - Nada 1 - Area que criará 3 - Local "base" Lembra da magia de healing ? vejamos uma mass healing --Calculed by ta4e-- --For tibia 8.22-- --Made in 12/09/08-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function getCombatFormulas(cid, lv, maglv) local formula_min = ((lv*0.25 + maglv*3) * 3.7) local formula_max = ((lv*0.25 + maglv*3) * 4.1) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) Mesma coisa... Só se adiciona isso. Que tal uma magia do tipo beam --Calculed by ta4e-- --For tibia 8.31-- --Made in 07/11/08-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*0.25 + maglv*3) * 0.5) local formula_max = -((lv*0.25 + maglv*3) * 0.8) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end local area = createCombatArea(AREA_BEAM5, AREADIAGONAL_BEAM5) setCombatArea(combat, area) setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Se você comparar ela com uma ULTIMATE EXPLOSION VERÁ que só muda o efeitos. Mais aonde faz ela em frente ao player e a outra não ? No spells.xml, veja por que aprendemos ele primeiro... Em tese vocês com um pouco de pratica já serão grande spells makers. Para quem tem mais dificuldade (Quem acha que eu sou bom..., se você soubessem o que eu demoro para aprender) As magias de runas, são iguais a essas na criação, o que muda é no spells.xml, 80% dos erros de spells acontecem lá. Magia com danos fisicos Eu dou a cara limpa, para dizer que não abro um otserver a 4 meses, devido ao meu pc reiniciar devido ao uso de muita memoria . Então até a ultima vez a função padrão do TFS estava falha em relação aos danos. Ai novamente o Pedro B. fez uma... --Calculed by ta4e-- --For tibia 8.31-- --Made in 07/11/08-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function getSpellDamage(cid, weaponSkill, weaponAttack) damage_min = (weaponSkill * weaponAttack / 30) * 2.5 damage_max = (weaponSkill * weaponAttack / 30) * 3.7 if(damage_max < damage_min) then local tmp = damage_max damage_max = damage_min damage_min = tmp end return -damage_min, -damage_max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Em tese ela é a mesma coisa que a do ot. Se preferirem testem ela, e vejam... Essa parte da formula é igual a outra, ela calcular o skill e o ataque da arma. Igual no tibia global. Portanto se o individuo ta sem arma, ela nem funciona... A base dela é a mesma só muda a função : setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage") Bem eu acho que fico por aqui, esse tutorial não é grande coisa, mas espero que ajude muita gente com duvidas simples, e se quiser evoluir, estude as spells que vocês conhecerão mais (As de party são legais, apesar de terem coisas para mim desnecessarias. Deem sugestões, dúvidas, criticas e o que desejaram. Falem mal, mas falem de mim!!!1 ponto -
[Lua] Biblioteca Mapwitharrayofkeys
Vilden reagiu a SkyDangerous por um tópico no fórum
Introdução: Essa classe de objeto tem um objetivo de armazenar em uma única tabela um mapeamento de valores não inteiros chaves para valores arbitrários e uma sequencia de toda a chave mapeados. Essa classe é útil para armazenar um mapa de valores não inteiros e uma série de chaves em uma única tabela. Métodos: add(key, value) Adiciona o mapeamento de valor fundamental para o valor para o mapa. value(key [, value]) Se o valor for fornecido, então o valor mapeado para a chave principal é substituído pelo valor valor . Caso contrário, o valor mapeado pela chave chave é retornado. valueat(index [, value]) Se o valor é fornecido, em seguida, o valor mapeada para a chave armazenados na posiçãoíndice é substituído pelo valor valor . Caso contrário, o valor mapeado por chave armazenada na posição índice é retornado. remove(key) Remove o mapeamento da chave do mapa e da matriz. removeat(index) Remove o mapeamento de chave armazenada na posição de índice do mapa e da matriz. Observações: Instâncias não pode armazenar chaves inteiras porque estão reservados para o armazenamento dos valores fundamentais de uma forma de matriz. Instâncias não podem armazenar o nome dos membros da classe como strings. Para fazer isso, use as operações de classe sobre uma mesa vazia. Exemplo: MapWithArrayOfKeys = require "loop.collection.MapWithArrayOfKeys" map = {} MapWithArrayOfKeys.add(map, "hello", true) MapWithArrayOfKeys.add(map, "xtibia,", true) MapWithArrayOfKeys.add(map, "the", true) MapWithArrayOfKeys.add(map, "best", true) ]MapWithArrayOfKeys.add(map, "forum", true) print(table.concat(map, " ")) Instalação: Para que esse tutorial funcione deve baixar a biblioteca, e em seguida coloca-lo na pasta do seu "editor de texto" Link: http://www.mediafire...60bkpjgiobcmaol Créditos: Renato Maia1 ponto -
[Ajuda] Script
JulioNakanishi reagiu a Vodkart por uma questão
--[[ SCRIPT BY: MarcelloMkez ]] function onUse(cid, item, pos, item2, topos) config = { ptemp ="yes", --[[ Teleportar para ciade principal "yes ou no". ]] townp ="no", --[[ Teleportar para Cidade onde o player mora, "yes ou no". ]] rmvitem ="no", --[[ Remover item quando for usado? "yes ou no". ]] vip ="yes", --[[ Precisa ser Premium Account para usar o item? "yes ou no" ]] batlle ="yes", --[[ Precisa estar sem Batlle para usar o item? "yes ou no "]] possibilidade = 1 , --[[ Possibilidade do player ser teleportado em porcentagem. ]] princ = {x=418, y=1406, z=7}, --[[ Posição da Cidade Principal. ]] pz ="yes" --[[ Precisa estar em Protection Zone para Usar o Magic Teleport? "yes ou no"]] } local p = getPlayerTown(cid) local townpos = getTownTemplePosition(p) local cityname = getTownName(p) local chance = math.random(1, 100) --[[ de 1 a 100 % de chance, Não mude. ]] local msgp ="~ "..getPlayerName(cid).." Foi Teleportado para Cidade Principal. ~" local msgt ="~ "..getPlayerName(cid).." Foi Teleportado para "..cityname..". ~" local fail ="'O Teleport Falhou.'" if(config.vip =="yes") and getPlayerStorageValue(cid, 13540) - os.time() <= 0 then return doPlayerSendCancel(cid, "Você precisa ser Vip Para usar o Teleport Magico.") elseif (config.batlle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then return doPlayerSendCancel(cid, "Você precisa estar sem o batlle para usar o Teleport Magico.") elseif (config.pz =="yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then return doPlayerSendCancel(cid, "Você precisa estar em Protection Zone para usar o Teleport Magico.") elseif (config.ptemp =="yes" and config.townp =="yes") then return doPlayerPopupFYI(cid, "'ERROR': Não é Possivel teleportar para duas cidades ao mesmo tempo.") --[[ Menssagem quando o player marcar 'yes' para as duas opçoes de teleport. ]] elseif chance >= 1 and chance <= config.possibilidade then doCreatureSay(cid, fail, TALKTYPE_ORANGE_1) return doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) elseif(config.ptemp == "yes") then doTeleportThing(cid, config.princ) doCreatureSay(cid, msgp, TALKTYPE_ORANGE_1) return doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) elseif(config.townp == "yes") then doTeleportThing(cid, townpos) doCreatureSay(cid, msgt, TALKTYPE_ORANGE_1) return doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) end if(config.rmvitem =="yes") then doRemoveItem(item.uid, 1) end return TRUE end reportado, área incorreta1 ponto -
Pokemon Supreme® {Atualizado²}
joselouku1 reagiu a Aragorn100 por um tópico no fórum
eu não quero ter otserver eu tenho xP quem disse que não tenho aula a tarde xP se que sabe xP1 ponto -
Clone Spell
Jinzo reagiu a Yan Oliveira por uma questão
1º Crie um arquivo na pasta talkactions/scripts com o nome de clone.lua e coloque em seu conteúdo: local spells = { [1] = {used = 0, text = '<attack name="melee" interval="2000" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="fire"/></attack>'}, [2] = {used = 0, text = '<attack name="melee" interval="1200" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="energyarea"/></attack>'}, [3] = {used = 0, text = '<attack name="melee" interval="700" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="mortarea"/></attack>'} } local spellsNumber = 2 function randomNum(range) local rand = 0 good = false math.randomseed( os.time() ) math.random() math.random() math.random() while (not good) do rand = math.random(range) if (spells[rand].used == 0) then spells[rand].used = 1 good = true else good = false end end return rand end function onSay(cid, words) local attacks = "<a>" local num for i=1,spellsNumber,1 do num = randomNum(table.getn(spells)) attacks = attacks .. spells[num].text end attacks = attacks .. "</a>" doCreateCustomMonster(getCreatureName(cid), getCreaturePosition(cid), getCreatureOutfit(cid), getCreatureMaxHealth(cid), attacks, 6324, 1, 100) for i=1,table.getn(spells),1 do spells.used = 0 end attacks = "" return true end Explicando: doCreateCustomMonster(nome, posição, outfit, health, attacks, corpo quando morto, distancia do player, experiencia) 2º Abra o arquivo talkactions.xml e adicione em qualquer lugar: <talkaction words="!clone" event="script" value="clone.lua"/> Pronto1 ponto -
Script Aparecer Pedra
TiagoBordin1988 reagiu a Bennyhappy por uma questão
em data/actions/scripts, cree arquivo lua waller.lua function onUse(cid, item, frompos, item2, topos) wall1 = {x=1136, y=835, z=5, stackpos=1} wall2 = {x=1136, y=836, z=5, stackpos=1} getwall1 = getThingfromPos(wall1) getwall2 = getThingfromPos(wall2) if item.uid == 7002 and item.itemid == 1945 then doRemoveItem(getwall1.uid,1) doRemoveItem(getwall2.uid,1) doTransformItem(item.uid,item.itemid+1) elseif item.uid == 7002 and item.itemid == 1946 then doCreateItem(10546,1,wall1) doCreateItem(10546,1,wall2) doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return true end em Data/actions abre arquivo actions.xml e adicione <action uniqueid="7002" event="script" value="waller.lua" /> 1.- select pos do pedra 2.- select item id do pedra 3.- uid em rmebermap do palanca1 ponto -
em login.lua adc antes do return true: -- effect vip effectevent = {} function doEffectPlayer(cid, effect) if not isCreature(cid) then return LUA_ERROR end doSendMagicEffect(getThingPos(cid), effect) effectevent[getPlayerGUID(cid)] = addEvent(doEffectPlayer, 3000, cid, effect) end if getPlayerStorageValue(cid, 13540) - os.time() > 0 then doEffectPlayer(cid, 45) end -- end effect vip doEffectPlayer(cid, 45) -- 45 é o n° do efeito que vai sair no player1 ponto
-
Folspa tente ser mais informativo, tente fazer um mini-tutorial, mas obrigado por tentar ajudar. _______________________________________________ Você precisa de um respawn, quando você está na aba de monstros la embaixo tem um botão para adicionar um spawn você clica nele e depois no mapa, uma área vermelha irá surgir, você pode colocar o npc dentro dela.1 ponto
-
baixei o server e ele ta muito simples coloca SS's pra a galera ver :S1 ponto
-
Eu testei aqui e ele volta para a outfit original por causa dessa função: doRemoveCondition(cid, CONDITION_OUTFIT) ... você diz ficar com o looktype 3 também?1 ponto
-
Daniel Oliveira
DaNDaNrOxX reagiu a Lordfire por um tópico no fórum
Problema resolvido, um tumor a menos no fórum.1 ponto -
@vilden function onDeath(cid, corpse, deathList) if isPlayer(cid) and getPlayerSkullType(cid) < SKULL_RED and getPlayerBlessing(cid, 5) then doCreatureSetDropLoot(cid, false) end return true end eu coloquei só para checar a bless 5 porque ela que tem a função de não deixar perder loot '-'1 ponto
-
[8.60] Ultima Online Ot Serv (Dedicado Nacional)
EquipeGOT reagiu a JumentoCuzaum por um tópico no fórum
bom parece um bom servidor achei bem legal seu site boa sorte1 ponto -
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local item,pos = 2123,{x=129, y=53, z=6} if (msgcontains(msg, 'travel') or msgcontains(msg, 'viajar'))then npcHandler:say("Você precisa ter na bag 1 "..getItemNameById(item).." para teleportar, você quer teleportar? {yes}", cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if getPlayerItemCount(cid, item) >= 1 then doTeleportThing(cid, pos) else npcHandler:say("Você não tem o item!", cid) end elseif msg == "no" then selfSay("Then not", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())1 ponto
-
Promoção para times novos, venha conferir. OBS: Promoção válida até dia 03/06 Mudamos de host, agora estamos hospedados em um servidor EUA de 2000mbs. Venha nos prestigiar.1 ponto
-
[Talkaction] Sistema De Auto Loot (Poketibia)
Viinho Sdt reagiu a jackbolin por um tópico no fórum
@lordbug99 O Script te ajudo??? Então o que custa dar um REP+?1 ponto -
[Encerrado] Skills De Ataque Nao Sobem
Trueds reagiu a jlimacoelho1 por um tópico no fórum
Amigo me desculpe mas você postou na area incorreta...1 ponto -
Pokemon Ex 2.1 Revisão
dudusbotelho reagiu a Sakegari por um tópico no fórum
Para arrumar o crash do Servidor troque o seu exp.lua por esse abaixo : Para quem não sabe o exp.lua se encontra na pasta data\creaturescripts\scripts. Agora troque o seu 000-constant.lua por esse : Para quem não sabe 000-constant.lua se encotra na pasta data\lib.1 ponto -
Scripts Variados De Php
alissonfgp reagiu a HeNnet por um tópico no fórum
Alguems codigos bom pra você por no seu site. Cascate PHP Calendar Descrição: Script de calendário escrito em PHP. Com ele você poderá mostrar um mês ou ano e permite ainda mover para frente ou para tras os meses/anos e selecionar dias individuais com um mes para um link opcional para outra página. Link:http://rapidshare.de/files/13060192/Calendar.php.html ---- Calculadora Descrição: Esta é uma calculadora ótima com bastantes funções e muito interessante de ser estudada. Link:http://rapidshare.de/files/13060616/calculadora.html.html ---- Protegendo a sua página Descrição: coloque o seguinte código em sua TAG <body> de forma a ficar assim: Este simples código irá bloquear a seleção de objetos (imagens, textos...) em sua página, além de impossibilitar o uso do botão direito do mouse. ---- Exibir Status do ICQ (Online, Offline, Etc) Detalhes: Copie e cole o seguinte código em seu site: ---- Depois estarei postando mais codigos1 ponto