Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 11/12/10 em todas áreas
-
Alissow OTs 4.11! Esta versão 4.11 foi meio apressada, só adicionamos as features novas do 8.6. Aproveitem. Créditos: Alissow Comedinha Luis Nirk TFS Team Viniply Xedegux Sobre o OT/Mapa: Principais quests: -Annihilator -Inquisition Quest -Pits of inferno -Demon Oak -Solar axe quest -HOTA -MPA quest -The Challenger Monstros: -Total monstros: 10292 -Total spawn: 5587+ Cidades: -12 Cidades -200 Houses+- Raids/Invasões: -Rat -Orshabaal -Ghazbaran -Giant spider/The old window -Ferumbras -Morgaroth Spells: -Magias editadas para balanceamento das vocações Changelog Atualização [3.4 BETA]: - Removido áreas não usadas no mapa, diminuindo o tamanho em MBs - Adicionado Anti Magebomb System - Corrigido bugs no npc addon - Adicionado sistema onde os npcs falam sozinhos (Igual como foi adicionado no global). First ;] - Adicionado Elf village em Venonh ( bem parecida com a do global ;]) - Potions desaparecem quando usadas - Corrigido sistema de Up - Corrigido sistema de Monster Counter - Nova dragon lair em Mirand Theraan (Subsolo) - Adicionado porta de level, que protege leveis baixos acessarem os demons da cidade de Flam - Ampliado deserto da cidade de Mirand Theraan - Adicionado Ilha de Goroma - Adicionado Forbidden islands - Ampliado floresta da cidade de alfon e colocado área de macacos parecida com Banuta. - Ligação de alfon com Mirand Theraan - Corrigido bugs reportados nas portas das casas - Corrigido posição dos buracos e escadas - Adicionado beds em todas as casas - Corrigido bugs em casas de yalahar - Adicionado Blue legs quest ( Koshei The Deathless global) - Corrigidas quase todas as areas de Yalahar - Teleports em Yalahar substituidos por NPCs de teleport do global - Corrigido pequenos erros no npc Capitao Coruja, e adicionado viagem à goroma - diminuido ataque do Eye of the seven - Ice rapier agora quebra - Corrigido npc Banker - Adicionado quase todos os items 8.5 - Adicionado medusa - Adicionado Todos os outfits novos - Corrigido NPC Banker (que dava dinheiro) Script By Ta4e - Corrigido Annihilator Quest - Adicionado Notice System - Adicionado novo distro, compilado por Comedinha Atualização nº 2 [3.4]: Otserv atualizado... Corrigido debugs frequentes Corrigido debugs na magia exevo pan Corrigido bugs nos npcs Roy e Firewalker Adicionados mais novos items 8.5, agora temos 90% dos items novos... Atualização 3.5 [06/08/2009]: - Cidade principal (dorion) totalmente reformada - corrigido blue legs quest - Corrigido alavancas de compra de potions - Adicionado alavancas de compra de runas - Corrigido npc Bank - Adicionado NPC King Arthas, que vende promotion - Adicionado npc Rashid, que vende items. - Arrumado Wild Growth rune - Arrumado Utani Hur - Magias reajustadas - Novo estilo de server save - Ilha de mystic reformulada (by Nirk) - Adicionado nova magia para knights "Exkordium". - Adicionado nova magia para mages (promoted) "Exura Seil". - Adicionado nova magia para mages (promoted) "Exevo Gran Frigo". (arrumar -> sem exhausted nem gasta mana) - Adicionados novos monstros. - Adicionado quest challenge (lvl 250) - Corrigido bug do Dead Cyclops - Bug aol Arrumado - Poi Modificada - Corrigido teleports ghouls yalahar - Modificada demon helmet quest, assim como o premio da quest - Corrigido nome do Hallowed axe - Corrigido bug das houses - Corrigido bug dos items andaveis Atualização Patch 3.5.1 [07/08/2009]: - Corrigido erro na inicialização do Ot - Bug das potions corrigido - Bug do aol corrigido (pelomenos pra mim) - Bug dos outfits corrigido - Corrigido erros nas escadas na ilha PvP - O monstro The Fastest Turtle agora não morre, se tornando um monstro apenas para atrapalhar - Retirada suposta quest dos 3 hellhounds e 1 minishabaal - Adicionado teleport de retorno na Ferumbras Tower - Corrigido posições da raid de The old widow - Corrigido bug das escadas nas minas de demons - Corrigido alguns bugs vistos no mapa Atualização 3.6 [10/08/2009]: - Arrumado bugs criticos - Arrumado comando !promote/!demote - Atualizado Items.xml - Bug das Beds arrumado - Modificações na cidade, como, nature e caves - Nova sala de treino - Adicionado comando !highscores Atualização 3.7! Beta [18/12/2009]: - Guildhall support (Elf) - Nova deathlist(Elf, OpenTibia SVN) - Frags funcionando (Elf) - Atualizado monstros e items (slawkens, KaczooH, Elf) - Novas talkactions: /commands, /wp, /storage, /config, /promote & /demote. (slawkens) - Novas funções lua - Novos creatureevents (slawkens, Elf) - Novos configuráveis (Elf, slawkens) - Modificado ataque de monstros existentes (especialmente outfits e velocidade) (Elf) - Monstros reorganizados & atualizados (Nem todos) (slawkens) - Melhorado sistema de banimentos (Elf) - Reescrita janela de Rule Violation (Elf) - Arrumado Stamina (Elf, OpenTibia SVN) - Casas agora são salvas nas modificações do dono (Elf) - Escadas de yalahar funcionando perfeitamente (Elf, Talaturen) - Sistema de nado & waterball completo (slawkens) - Monstros invisiveis não são mais mandandos ao client (anti bot) (OpenTibia SVN) - Anti-dash (OpenTibia SVN) - Sistema de leilão de casas, possibilidade de usar site para vender casas (house_actions table) (OpenTibia SVN, Elf) - Salvando bot actions para /logs/bots por cada player. Por exemplo, bot pode enviar mensagem com mais de 255 caracteres (slawkens) - Novos raid events- item spawning & disappearing and more (Elf) - Modificações no NPC system (Elf) - NPCs OutfitModule (Elf) - Completo 8.53 support, com wars (Elf) - Completo 8.54 support (Elf) - Arrumado NPC voices (Elf) - Players serão informados quando o Gamemaster logar ou ficar invisivel (slawkens) - Arrumado Player Deaths (Elf, slawkens) - Arrumado Abuso de PZ (slawkens) - Portas agora não ajudam players a entrar em PZ (slawkens) - Magic level formula (OpenTibia SVN, KaczooH) - Memory leaks (Elf) - Queries optimization (Talaturen) - Janelas podem ser abertas do lado de fora da casa- agora apenas GMs podem fazer isso (slawkens) - arrumado Efeitos para o Ghost (GM)- configuravel (slawkens) - Corrigido >> Ghost debugging players (OpenTibia SVN, Elf) - Corrigido erro na promotion (Elf) - Corrigido vários erros no console. (slawkens) - Corrigido Spam de magias (Elf) - Corrigido stamina premium (Elf) - Corrigido Clean (Elf) - Corrigido vários outfits (Elf) - Corrigido Ghost (Elf) - Todas as correções no OpenTibia SVN (Open Tibia SVN, Elf) - Corrigido Todos os crashes possiveis (Elf) - Npcs Corrigidos (Comedinha) - Distro Reformulado (comedinha) - Bugs de reports arrumados (Comedinha) - Novos outfits (Alissow) - Actions Arrumadas (Comedinha) - Libs trocadas (Comedinha) - Talkactions bugadas arrumadas (Comedinha) - Reforma na área Sul da cidade Dorion (Alissow) - Adicionado monstros 8.54 (Alissow) - Corrigido bug das potions infinitas (Alissow) Atualização 3.7 Patch 1 [27/12/2009]: - Rampa na frente da loja de foods retirada (Alissow) - Arrumado bugs de mapa em anknor (Alissow) - Bug na Lib dos npcs corrigido (Alissow) - Bug do acc manager arrumado! (Alissow) - Magias "Exkordium" e "Ice Storm" arrumadas (Alissow) - Monstros 8.54 funcionando (Alissow) - 2º Addon Yalaharian arrumado (Alissow) - Addons Warmaster adicionados no NPC Addoner (Alissow) - Pequenas modificações na cidade principal, Dorion, para melhora da jogabilidade (Alissow) - Comando /Deathlist retirado (Alissow) - Magic Wall Rune arrumada (Alissow) - Quest Annihilator arrumada (Alissow) - "Your depot contain x items" Arrumado (Alissow) - Addons reorganizados, mais facil aggora (Alissow) - Tempo de Red skull e Black skull reduzidos para 24 e 42 horas (Alissow) - Reduzida porcentagem de morte (Alissow) - Acrescentado chance de critical hits (Alissow) - ShowHealingDamage Adicionado (Alissow) - Várias partes do mapa remapeadas (Alissow) - NPCs para recarga de Soft boots & Firewalker boots arrumados [Não testado] (Alissow) - Comando !frags arrumado! (Alissow) - Agora é possivel fazer addons sem precisar do comando !buypremium (Alissow) Atualização 3.8 [17/01/2010]: - Arrumado bug nas escadas do Dlair (Alissow) - Todos os bugs nos NPCs arrumados (Comedinha) - Novas talkactions [a pedidos] (Comedinha) - Deathlist arrumada (Comedinha) - Novo Distro (Comedinha) - MySQL Atualizada (Comedinha) - Firewarker boots não é mais gasta quando não está usando (Comedinha) - Problemas com items no Rashid arrumados (Alissow, Comedinha, Comunidade) - O NPC Banker foi corrigido, mas achei mais seguro retira-lo, visto que ninguem usava e poderia causar outro tipo de bug - Ilha (Sim aqui é uma ilha) de Zao adicionada (Alissow, Barker) - Monstros 8.54 aperfeiçoados (Alissow, Markithu, Zkum) - Reduzido danos da magia Exkordium (Alissow) - Os npcs Dark Rodo e Rachel vendem Blank Runes (Alissow) - Magias que não hitavam anteriormente foram arrumadas (Alissow) - Comando !buypremium arrumado (Alissow) - Arena PVM - Mais conhecida como Arena Svargrond - FUNCIONANDO!!! (Alissow) - Magia LightChain Retirada (Alissow) - Adicionado um sisteminha legal no templo (Alissow) - NPC Rashid retirado (Alissow) Atualização 3.8 Minor Patch 1 [17/01/2010]: - Comando Deathlist retirado novamente, fizemos testes equivocados. Se você é uma das 16 pessoas que baixou a versão anterior (3.8) não precisa baixar esta, basta retirar o comando !deathlist e /deathlist do seu Talkactions.xml, Os comandos causam quedas no servidor. Atualização 3.9 [15/02/2010]: - Cidade principal (Dorion) reformada, novo templo, novo depot, novo porto, novos npcs :] (Alissow) - Adicionado Reputation System (Comedinha, Cybermaster) - Adicionado !bless system (Comedinha) - /info melhorado (Comedinha) - Jail System (Comedinha) - Bug chatinho nos tiles pretos arrumado. - Magic Wall Funcionando! (Alissow) - Agora você pode fazer bolos e pães :] (Comedinha, Jean, Ojani) - Adicionado sistema de casamento (Comedinha, ScorpiOOn93, Alissow) - Loot The Fastest Turtle diminuido (Alissow) - Loot e experiencia do Feromous mais baixo (Alissow) - Sistema de parceis para Dorion funcionando (Alissow) - Guildwar System (Comedinha) - Anti MageBomb System (Comedinha, Huggen) - Adicionado Anti Nuker - Esse funciona! (Comedinha) - Adicionado Map Marks, para os players novos (Alissow, Comedinha) Atualização 4.0 [15/02/2010]: - Cidade Mountain totalmente reformada (Alissow) - Montanha de Goblins de Dorion reformada (Alissow) - Demonic Castle de Dorion reformado (Alissow) - Cidade de Venonh modificada (Luis) - Distro atualizado, funcionando nos clients 8.54, 8.55, 8.56 e 8.57 (Comedinha) - Comando !bless retirado (Alissow) - O NPC Ermes não vende mais items de decoração (Alissow) - Arrumado bugs na Ferumbras Tower (Alissow) - O comando !AFK on agora mantem o player parado (Comedinha) - Arrumado bugs nas escadas da área de DeathFans (Alissow) - Comando !Deathlist funcionando! (Alissow, Doidinmapper, GT Thionix) - Sistema de REP atualizado (Comedinha) - Sistema de Polls (Comedinha) - Banco por comandos (Comedinha) - Novos comandos de addon e accounts (Comedinha) - Sistema de futebol completo! (Comedinha) - Sistema Antibot (Comedinha) - Magia Spared Hur modificada (Alissow, Orzeleagle) - Adicionado sistema de montaria (Alissow, unknown666) - Adicionado Canivetes (Alissow, Siramix) - Nova hunt Subaquatica (Luis) Atualização 4.11! [11/07/2010]: - Versão 8.6, todos os items, outfits e monstros novos (Comedinhasss, Fireelement) - Adicionados os novos monstros 8.6 (Alissow) - Bug das potions arrumado (Comedinha, Matheusmkalo, Gabriel linhares, Fireelement) - Erros das runas arrumado (Comedinha, Gabriel linhares, Matheusmkalo, fireelement) Download Servidor: 4shared Tamanho: 17,416 KB Download: http://www.4shared.com/file/ez8XKrju/860_Alissow_Ots_411.html Link protegido: http://lix.in/-8d4bc0 Scan VirusTotal: http://www.virustotal.com/pt/analisis/983abb574dbb957a75aa1fd29eb804065f775e6a0c43216aa277686d32bce22a-1263702373 Atenção - Acc do God: god/god - LEIA o tópico antes de postar qualquer coisa ou duvida - Reportem se houver algum bug - A database fica na pasta schemas+Database - Proibido o uso do nosso distro sem o nosso consenso, obrigado. Andei percebendo que há muitos mapas feitos por mim em outros servidores postados aqui no xtibia, eu não sei se vocês sabem, mas isso é PLÁGIO. Eu não sou uma pessoa egoista, tudo que eu posto aqui no XTibia é para ser compartilhado, mas desde que mantenham os devidos créditos. Será denunciado qualquer tipo de "roubo" sem minha autorização para beneficio próprio. Eu sei que vocês não se importam muito com isso, eu também não deveria me importar, mas é o tempo e a dedicação de outra pessoa que vocês estão roubando, então peço gentilmente aos que tem conhecimento desses mapas, que me apontem. Não tem graça trabalhar horas e horas e ser roubado em dois minutos.2 pontos
-
Oi galera do xtibia, alguns já me conhece , posto scripts na seção de actions/talk/move! Aqui está a versão 3.0 do PokeServer TFS 0.3.6pl1, ~~( O que contém na versão 3.0? ) ~~ ~~>Fly System - Bug corrigido ~~>Ride System- Bug corrigido ~~>Catch System- Bug corrigido ~~>Go/back System- Bug corrigido ~~>Stones System - Bug corrigido ~~>Npc Heal - Bug arrumano ~~>Todos os 151 pokemons (50% configurados) ~~>Skill System - Para cada tipo de pokemon é um poder difirente! ~~>Mapa Svke 70% ~~>Todas as outfits Stones,Go/back,Npc,Fly,Ride,Skill, foram testados, então não venha encher o saco falando merda <--! Download !--> Server 3.0 Client (È extremamento necessario para poder entrar no server!) Versão 3.0 do server de pokemon Faça você mesmo! Créditos ao Drakylucas por me ajuda a fazer os scripts! Não se esqueça de clicar ali no icone verde1 ponto
-
FAZENDO SEU OT, BOTANDO ONLINE, LIBERANDO PORTAS, BOTANDO SITE ONLINE, CRIANDO IP FIXO e mais umas coisas Então pessoal, nesse SUPER HIPER MEGA DOUBLE SUPER-SONICO BLASTER 3D JACK BAUER CHUCK NORRIS tutorial, vou ensinar a vocês a como criar um OTserv do zero! (Inclusive SITE!) Primeiro, você precisa baixar esses arquivos aê: OT - Link da seção com downloads: http://www.xtibia.com/forum/forum/596-downloads-de-otserv/ Appserv - Link do download: http://www.appservnetwork.com/ SCRIPTS DO SEU SITE - Link da seção de downloads: http://www.xtibia.com/forum/forum/581-downloads-de-websites/ Só isso : ) Então vamos lá. 1º CRIANDO SEU SERVER Primeiro, extraia o conteúdo do seu OTserver em alguma pasta! Você verá que tem um arquivo com esse nome: config.lua Clique com o botão direito nele, vá em abrir com: Bloco de notas. >>>>> Dentro dele, tem várias coisas.... Só vamos configurar as seguintes coisas: -- server ip (the ip that server listens on) ip = "AQUI VOCÊ POE O SEU IP" -- monster lootrating (how much faster you get items from monsters) lootmul = AQUI VOCÊ POE A PORTECENTAGEM DE CHANCE DE LOOT QUE TEM exemplo: 20 (o máximo é 100!) -- skill multiplier (another multiplier in data/vocations.xml)[/font][/font] skillmul = AQUI TU POE QUANTAS VESES VAI MULTIPLICAR O SKILL exemplo: 6 -- manaspent multiplier (another multiplier in data/vocations.xml) manamul = AQUI TU POE QUANTAS VESES VAI MULTIPLICAR O MAGIC LEVEL exemplo: 5 Bom, alí onde você poe o seu IP, você pega o seu ip nesse site: www.whatip.com Ve seu ip e cola lá. Quando terminar é só clicar em arquivo, salvar e fechar. Pronto, lembrando que toda vez que você desligar e ligar sua internet, o ip muda. Tem que editar lá também. 2º LIBERANDO AS PORTAS 7171 Como iremos fazer isso? Fácil! primeiro você tem que saber de uma coisa, se sua internet for a RÁDIO, você não poderá ter um OTserv. APENAS VIA HAMACHI! Link ensinando a fazer server via hamachi: http://www.xtibia.com/forum/index.php?showtopic=27981 Ok, caso não seja a rádio, vamos lá. Sua internet precisa se conectar por um discador ou já vem conectado direto quando liga?! Se precisar de discador, pra liberar as portas basta fazer isso: Primeiro, Vamos ao painel de controle. Iniciar> Painel de Controle. Clique em FireWall do Windows. Clique na aba Exceções E clique em Adicionar porta. Configure da seguinte maneira. Nome: Open Tibia Porta: 7171 Protocolo: TCP IMAGEM: Dê OK. Pronto, liberou as portas! Mas se é só ligar e já conecta direto sem discador, você tem que saber o modelo de seu modem. Ai você vem nesse site: http://portforward.com/routers.htm Acha o modelo do seu modem, clica. Dai na próxima tela, procure por TIBIA. Ai é só você seguir os passos lá e pronto! Mas não se esqueça de fazer aquilo do FireWall que eu disse ali em cima eim! Pronto! 3º PONDO O OT ONLINE Como faremos isso? Basta entrar na pasta do OT e abrir o arquivo EXECUTÁVEL que tem lá! Não é o Restarter nem o Remote Control! Pronto. Seu server está online! Mas você não tá consseguindo entrar né? É porque você entra pelo ip que você pega desse jeito: Vá ao Iniciar Clique em Executar Digite: cmd Depois digite: ipconfig Ai você pega o Endereço de IP e cola no IPCHANGER e entra! Mas só você que entra por esse IP! Os outros entram por aquele do www.whatip.com 4º AUMENTANDO A EXP Mas a EXP ainda está baixa! Como vamos arrumar? Fácil! Primeiro, vamos até a pasta do OT, Vá na pasta Data Depois, abra o arquivo stages.xml Estará mais ou menos assim: <?xml version="1.0"?> <stages> <stage minlevel="1" maxlevel="999999" multiplier="35"></stage> </stages> Vou explicar: stage minlevel="1" Isso, é o level que a exp começa. No caso, isso é usado para se quiser experiências variadas. No meu caso, eu puis como level mínimo 1. E onde está maxlevel="999999" Isso é o level que a exp desejada chega. Tipo, Quando chegar no level 500, a exp para de ser tal! Entende? Essa parte é a mais importante: multiplier="35" Essa é a EXP! Se você por ali, 50, vai ficar 50 veses mais rápido de upar do que no Tibia normal! Pronto! A exp tá configurada.. Seu server tá online.. quer mais o que?!?! Arrumar a regeneração de mana e hp? Ok né, vamos lá então! 5º ARRUMANDO A REGENERAÇÃO DE MANA/HP Abra a pasta de seu OT, Depois vá na pasta Data! Agora, abra o arquivo Vocations.xml Ai lá tem todas as vocações. Ai cada uma é mais ou menos assim: <vocation id="1" name="Sorcerer" description="a sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="10" gainmanaticks="3" gainmanaamount="50" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120"> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> Então, Onde está esse: gainmanaamount="50" É a quantidade de Mana que ganha. E onde está esse: gainmanaticks="3" É o tempo que irá demorar para subir a mana, Ai no caso está 3 segundos! -- E para mudar a regeneração de HP, Onde está esse: gainhpamount="10" É a quantidade de HP que ganha. E onde está esse: gainhpticks="6" É o tempo que vai demorar para subir o HP! Então é isso! Edite todas as vocações Salve, resete o Servidor e pronto! Mas po, um server sem GM não dá né?! Vamos aprender a criar um char GM! 6º CRIANDO UM CHAR GM/GOD Primeiro, Vamos ao arquivo do character que irá virar gm. Geralmente, está na pasta Players. Está mais ou menos assim: (cortado algumas partes do script para ficar menos) <?xml version="1.0" encoding="UTF-8"?> <player name=" XTibia" account="58585858" sex="1" lookdir="2" exp="4200" voc="3" level="99999999" access="0" cap="380" maglevel="256" Para mudar para GM/GOD Basta mudar o nome e o Acces! Vamos mudar o Acces para 5 (GOD) E o nome para GM XTibia <?xml version="1.0" encoding="UTF-8"?> <player name="GM XTibia" account="58585858" sex="1" lookdir="2" exp="4200" voc="3" level="99999999" access="5" cap="380" maglevel="256" Os acessos são os seguintes: 5- GOD 4- Senior GM 3- GM 2- Sênior Tutor 1- Tutor Depois de ter mudado isso, Volte a pasta players. Lá, renomeie o arquivo do character para o nome que você pois dentro do arquivo. Agora, saia da pasta players e vá para a pasta ACCOUNTS Localize a account do player que irá virar GM, E vamos editá-la. Vai estar mais ou menos assim: <?xml version="1.0"?> <account pass="senha123**" premDays="0" premEnd="0"> <characters> <character name="XTibia"/> </characters> </account> Mude o nome para o nome que você pois no arquivo do character. Ficando assim: <?xml version="1.0"?> <account pass="senha123**" premDays="0" premEnd="0"> <characters> <character name="GM XTibia"> </characters> </account> Feito! Lembrando que para editar o character, ele precisa estar offline! Tá, agora você ve aqueles IPs bonitos né? Tipo assim: mamae.servegame.com Então vamos fazer! 7º CRIANDO IP FIXO Entre no site www.no-ip.com Logo depois, registre-se. Clicando em sign-up. Preencha como desejar. Depois de ter se cadastrado, Você receberá um email com a confirmação do cadastro. Feito. Agora, entre com seu email cadastrado e senha. Na tela que aparecer, clique em Hosts/Redirects. Clique em ADD Uma nova telá irá aparecer. Em name ponha o que você quiser. APENAS O NOME! Não ponha nada mais! Só o nome. Em baixo, escolha o serviço que você quiser. Exemplo, .servegame.com Pronto. Não mecha em mais nada e clique em Create Host. Feito! Seu IP fixo está criado! Espere 5 minutos antes de usá-lo. Lembre-se de todo dia que resetar sua Internet e seu IP mudar, ir no site do no-ip.com e clicar em manage hosts Acha o seu IP Fixo e clica em modify. Daí muda seu IP! ps: o IP que vai no config.lua é o IP de números. Pronto! Seu IP agora tá bonitinho =) Tá, agora você já tem seu OT, configurado, char GM, IP fixo e server ONLINE! Vamos partir pro site?! Acho que é uma boa : ) 8º INSTALANDO E CONFIGURANDO O APPSERV (SITE) Então, sabe aquele AppServ 2.5.9 que eu falei pra você baixar no início do tutorial? Vamos usa-lo agora! Então, dê um clique duplo no ícone do setup do AppServ e vamos instalar! Siga as fotos, preencha igualzinho! Vou mandar um esquema antes! Desmarca PHP My Admin e My SQL Poe o nome do server NAO PODE TER ESPAÇO! Poe o teu EMAIL em baixo. E poe 8090 na port. Depois dá NEXT deixa ir, e no final desmarca as duas caixinhas! Fotos na seqüencia: 1 2 3 4 Pronto! Depois de instalado, Vamos liberar as portas necessárias! Que no caso é a 8090! Faça o mesmo procedimento da porta 7171! Dito láááá em cima! Sobe um montão pouquinho que você acha eu ensinando a desbloquear! Mas muda o nome da porta poe OT Site. OK? Feito, agora sabe os scripts que eu falei para você baixar?! Então, copia os arquivos do script do seu SITE e cola dentro da pasta WWW Que tá no C:\\\\\\\\Appserv\\\\\\\\www Cola dentro dessa www ai! Ai depois, você abre o config.php E configura ai. Geralmente é fácil! Se tiver algo assim: datadir Siginifica que eles querem o destino da pasta data. Qualquer dúvida na hora de configurar, pode adicionar meu msn! Tá na minha assinatura. Depois de configurar, Volte na pasta Appserv e abra a pasta Apache. Abre o arquivo apache_start Essa é a imagem de quando você abre: Pronto! Agora vai lá e testa pra ver se tá on o seu site. http://SEUIP:8090 Lembrando que os outros vão usar o IP do www.whatip.com ( ou o fixo) Mas você entra com o IP interno do executar>cmd>ipconfig Ok? Então é isso galera! Espero que tenha ficado bem explicadinho! Tirei muito tempo meu pra fazer isso! Mas valeu apena! Queria aproveitar pra mandar um beijo pro Frozen, Rickzs, Powerzin, Rustty, JV e Addict! Qualquer coisa que tenha faltado, fala que eu edito! TUTORIAL 100% BY LASTSOULS! Não tem crédito a ninguém alem de mim. PROIBIDA A CÓPIA NÃO AUTORIZADA! XTibia, a sua comunidade de Tibia e OTserv. 20081 ponto
-
Criando Imagem Animada Introdução: GIF (Graphics Interchange Format, que se pode traduzir como "formato para intercâmbio de gráficos") é um formato de imagem que pode ser feito, tanto parado, quanto animações. Neste tópico estarei ensinando, a como fazer uma imagem de extensão GIF, animada. Ou seja, aquela imagem que se meche. Utilitários: Flash CS5 Abaixo algumas fotos, para como exemplo, basta clicar na opção. Criando a Imagem Abra o Flash CS5 Selecione ActionScript 2.0 Faça uma linha diagonal Mude a linha um pouco à direita. Na parte inferior da tela, há números, e quadrados. Clique no quadrado abaixo do 5 e de F6 ( atalho para criar 1 frame. ) Repita, o que fez na etapa acima. Porém, agora no frame 10. Dê alt+enter, e você já pode visualizar. Está se mechendo. Vá em Files - Export - Export Movie - Animated GIF. Frame O Frame, nada mais é doque 1 dos papéis, do bloco. É, sabe quando pegamos o bloco, desenhamos, a cada folha uma parte do movimento, e depois parece que está andando? É isso. o Frame, você faz isso. 1-5, 1-10, 1-20, isso é a velocidade. Quanto mais perto for o frame, digamos, 1-8.. ele é mais rápido que 1-10. Eu daria alguns exemplos, porém o ImageShack não aceita, imagens de extenção GIF. A propósito é isto, dai vai da sua criatividade, criar uma animação mais interessante. Caso o público XTibiano, se interesse por Flash, posso postar mais algumas coisas. Flash dá pra se criar sites, animações, videoclipes, jogos, diversas coisas. As linguagens mais usadas são As3, As2. Espero que gostem, XJhoow1 ponto
-
[Oficial] Real Global Map hello Galerinha do Xtibia, Venho aqui desponibilizar o mapa do Doidin (8.57 Só que editado com minhas ideias e na versão 8.60 OBS: Para rodar esse servidor No seu pc voce tem que ter 2GB+ de memória ram e em bom estado. ( nao recomendo abrir o otserv com o mapa editor aberto junto). Real Global Map: - Versão do Tibia:8.60 - Mapa global 95% full. - Quase todos os NPC's do Tibia Global. - Servidor com o mínimo de bugs possíveis. - Scripts arrumados. - Entre outros... Cidades: Quest's: Oque tem de melhor que o servidor do Doidin? Quase nada pois ele copio minhas coisas x) Algumas Print Screen: para quem nao conseguiu abrir o spolier e gostaria de ver as SS link abaixo: print screen.txt Créditos: - Doohz Rush - Doidin - Alissow - DoidinMapper - RenanSdc - TFS Team - Styller Team - Alissow Team - Feragon - Viana! - Azevedo ATUALIZADO DIA 28/10/2010 Scan: Arquivo Muito grande para fazer scan. Remeres Mapa Editor 2.0 ( nao use outra versão ou vai bugar o mapa: Download Aqui! Doohz Rush Server : Download Aqui! OBS: FOI ARRUMADO TODOS OS LOOT'S DOS MONSTROS, E FOI ADICIONADO A NOVA AREA DE ZÃO (OS Draken elite etc, todos configurados perfeitamente ) Atualização 2.2; Arrumado os Teleport's dos Drakens; Editado os seal's da POI (+ parecido com global); adicionado 1 npc de runa em northern de ZAO; arrumada as Houses, e bugs de Cormaya; Retirado BUG de money; Arrumado detalhes do mapa. MSN: Doohz_rush@hotmail.com Gostou? REP+ Ali do lado :arrow:1 ponto
-
Bom Galera por um tempo tive uma dificuldade sobre o shop(Site) e a comunicaçao com o jogo, entao prestem atençao que vou colocar passo a passo o que montei de cada gente boa q fui encontrando em forums e cheguei ao 100% shop gesior. entao vamos la:[/size] 1-Real Server 2.2.5 (8.54-8.57) - XTibia.com, por doidin 2-Gesior ACC Maker - XTibia.com, por doidin obs: n testei em outros a nao ser os acima listados, nao me responsabilizo por testes em outras versoes este mesmo acima citado estao pra downloads aqui no x'tibia. apos seguir tutorial de instalaçao do gesior e ocorrer instalaçao 100% perfeita, tive a dificuldade de comprar itens no site e ir para o players in game entao seguir o seguinte tutorial: 1- Abra ".../xampp/htdocs/config/config.php" e ative o shop system (mude "0" para "1"): Código: $config['site']['shop_system'] = 1 2. Abra o arquivo globalevents.xml e adiciona a tag: Código: <globalevent name="shop" interval="30" script="shop.lua"/> Em data/globalevent/shop.lua coloque: Código: 2.1- CONFIGURAÇÃO No início do arquivo postado acima é parte do shop config: Código: -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 17 -- time (in seconds) between connections to SQL database by shop script SQL_interval = 30 Script padrão para se conectar com o banco de dados 1 vez a cada 30 segundos. 2.2- Abra seu arquivo constant.lua que se encontra em "data/lib/constant.lua" e adicione esta linha em qualquer lugar: InitShopComunication = 0 3-Na database do seu otserv execute (no phpmyadmin): Código: CREATE TABLE IF NOT EXISTS `z_ots_comunication` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL default '1', PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_offer` ( `id` int(11) NOT NULL auto_increment, `points` int(11) NOT NULL default '0', `itemid1` int(11) NOT NULL default '0', `count1` int(11) NOT NULL default '0', `itemid2` int(11) NOT NULL default '0', `count2` int(11) NOT NULL default '0', `offer_type` varchar(255) default NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_history_item` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `offer_id` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_history_pacc` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `pacc_days` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); 4- Fim da instalação. Agora adicione ofertas!! (exemplo abaixo) Exemplo de configuração de ofertas. Execute na database do seu OT: Código: INSERT INTO `z_shop_offer`(`id`,`points`,`itemid1` ,`count1` ,`itemid2` ,`count2` ,`offer_type` ,`offer_description` ,`offer_name`) VALUES (NULL , '10', '0', '12', '0', '0', 'pacc', 'Buy 12 days of premium account for yourself or your friend!', '12 Days of PACC' ), (NULL , '40', '5890', '50', '0', '0', 'item', 'Buy 50 Chicken Feathers!', '50x Chicken Feather' ), (NULL , '100', '2466', '1', '1987', '8', 'container', 'Buy bag with 8 Golden Armor! Become a rich mother fucker!', '8x Golden Armor'); Quando você for adicionar novas ofertas de PACC id - empty (auto_incement) points - quantos pontos custa essa oferta count1 - Dias de PACC esta oferta dá. offer_type = "pacc" offer_description - Descrição da Oferta, exeplo: "Buy 5 days of PACC. With PACC you can visit new areas, fight stronger monsters and promote your character!" offer_name - Nome da oferta, como: "5 Days of PACC" Quando você for adicionar uma nova oferta de ITEM id - empty (auto_increment) points - quantos pontos custa essa oferta. itemid1 - ID do item criato no seu OT count1 - "quantidade" do item, como SD com 15 cargas tem "count" 15, item normais (bag, crossbow, golden armor...) tem "count" 1, "count" 3 não irá criar 3 Golden Armos, use 'container' para dar mais items. offer_type = "item" offer_description - Descrição da oferta, como: "Buy Golden Armor and become great knight! Fight stonger mosters and lose less HP!" offer_name - Nome da nova oferta, como: "1x Golden Armor" Quando você for adicionar uma nova oferta de CONTAINER id - empty (auto_increment) points - Quantos ponstos custa essa oferta itemid1 - ID do item criado dentro da BP count1 - "quantidade"/"tipo" dos itens da BP, para itens normais, use "count" 1, para dar mais itens use "count2" e coloce quantos itens serão dados. itemid2 - ID da BP (como uma bag: 1987, ESSE ITEM DEVE SER UM CONTAINER E DEVE SER USÁVEL!!!) count2 - Número de itens dentro do container, se você usar "bag" (id 1987) como container você pode por 1-8 items, se backpack 1-20, não coloque mais doque cabe no container! offer_type = "container" offer_description - Descrição da oferta, como: "Buy 8 Golden Armors in bag and become rich player! Fight stonger mosters and lose less HP or sell it for much cash!" offer_name - Nome da oferta, como: "8x Golden Armor" este tutorial foi do :KutyKutyx3 - ###### bom ate aew resolvemos o problema dos itens irem pro players, mas o gesior vem pra vender premy em vez de vip e n achando nenhum meio de fazer alguma coisa a respeito fui fazendo testes ate chegar ao ponto entao vejam a soluçao deste fator. mantive o shopadmin do gesior e substituir o shopsystem que peguei de outro forum segue link abaixo http://www.multiupload.com/AOA619X65R , observaçao e a seguinte extraia e pegue so o shopsystem e cole na sua pasta htdocs n substitua o shopadmin este item foi criado por gpedro do ######. ainda n terminou xD [TFS 0.3/0.4] O melhor sistema VIP sempre! [Action/Movevent/Globalevent] Acção [Movevent /] Globalevent Olá. Primeiro de tudo Se você estiver indo para publicá-la em outro lugar, eu não quero que você tome os créditos porque sua mina de 100%. Primeiro de Tudo Se VOCÊ estiver indo parágrafo publica-la em Outro Lugar, eu Não Quero Que VOCÊ tome OS Créditos PORQUE SUA mina de 100%. Bem, eu vou explicar o sistema .. Bem, Vou Explicar eu o Sistema .. A maior parte do sistema vip usar um globalevent para remover um dia vip a cada 24 horas, mas, e se o serv uptime têm 23 horas e acidente? A Maior parte do Sistema vip USAR UM globalevent n removedor vip dia UM A cada 24 horas, mas, e se o uptime dez serv 23 horas e acidente? O dia não poderia ser removido, então eu consertei, agora o dia vip será removido em uma hora específica, se você configurá-lo para duas horas, o dia vip serão removidos em duas horas por isso, se o acidente serv para ele como 3 minutos ainda irá remover os dias VIP 02:00 .. O dia Não Poderia Ser removido, elemento Fixo assim Que eu, agora o dia vip Será removido Hora Específica em uma, SE VOCÊ configura-lo n. Duas horas, o dia vip Serao em removidos Duas horas Por isso, se o acidente Para ele serv Como três minutos Ainda vip ira Retirar o dia não 02:00 .. Também funciona para todas as contas a apenas como uma conta premium. Também funciona Para todas as Contas Apenas como um Uma Conta premium. Testado em TheForgottenServer 0.3.6 / 0.4 TheForgottenServer Testado em 0.3.6 / 0.4 Este sistema VIP contém: Este Contém Sistema VIP: * Suas funções proprias Funções Lua Lua * Removedor automático dia. Removedor Automático dia. * Telha VIP. Telha VIP. * OnLogin script para verificar vip. script OnLogin vip verificar parág. * Medalha de VIP. Medalha de VIP. * Remover Comando Dias Vip. Vip comando remover Dias. * Add Command Dias Vip. Adicionar Commando Vip Dias. Okey bem aqui vai. Vá para o seu phpmyadmin eo execute: ALTER TABLE `accounts` ADD `vipdays` int(11) NOT NULL DEFAULT 0; Agora, vá para dados / lib / function.lua e adicione estas linhas no topo. Depois de feito isso, adicione essa linha de dados / creaturescript / login.lua registerCreatureEvent(cid, "VipCheck") agora, em dados creaturescript / scripts crie um novo arquivo e nomeá-la vipcheck.lua dados / creaturescript / creaturescript.xml <event type="login" name="VipCheck" event="script" value="vipcheck.lua"/> Agora, vá para a data / globalevents / scripts /, crie um novo arquivo e nomeá-la daysremover.lua dados / globalevents / globanevents.xml <globalevent name="VipDaysRemover" time="00:01" event="script" value="daysremover.lua"/> You can change the time when the vip day is going to be removed in ( time="00:01" ). Você pode mudar o tempo quando o dia vip vai ser removido (hora = "00:01"). If you have more than or just 1 vip day, when you login you'll get a message: Se você tiver mais de um dia ou apenas vip, quando fizer o login, você receberá uma mensagem: Outros scrips VIP Tile : data/movements/scripts/ viptile.lua dados / movimentos / scripts / viptile.lua data/movements/movements.xml dados / movimentos / movements.xml <movevent type="StepIn" actionid="11223" event="script" value="viptile.lua"/> Em mapear editor, apenas conjunto de ações id 11223 para a telha que você quer ser telha VIP Medalha VIP dados / ações / scripts / vipmedal.lua data/actions/actions.xml dados / ações / actions.xml <action itemid="2112" event="script" value="vipmedal.lua"/> Não se esqueça de mudar o ID do item. Adicionar comando dias VIP data / talkactions / scripts / adddays.lua data / talkactions / scripts / talkactions.xml / <talkaction log="yes" words="/adddays" access="5" event="script" value="adddays.lua"/> Comando Remover dias VIP data/talkactions/scripts/ removedays.lua data / talkactions / scripts / removedays.lua data / talkactions / scripts / talkactions.xml / <talkaction log="yes" words="/removedays" access="5" event="script" value="removedays.lua"/> Porta VIP dados / ações / scripts / vipdoor.lua dados / ações / actions.xml <action actionid="2112" event="script" value="vipdoor.lua"/> apenas para jogadores VIP Efeito globalevents / scripts vipEffect.lua / data/globalevents/globalevents.xml dados / globalevents / globalevents.xml <globalevent name="vipEffect" interval="2" script="vipEffect.lua"/> Funções * getPlayerVipDays(cid) --- Use it to check how many vip days the player have. getPlayerVipDays (cid) --- Use-o para verificar quantos dias vip muitos, o jogador tem. * doAddVipDays(cid, days) --- Use it to add vip days to someone. doAddVipDays (cid, dias) --- Use-o para adicionar dias vip para alguém. * doRemoveVipDays(cid, days) --- Use it to remove vip days to someone. doRemoveVipDays (cid, dias) --- Use-a para remover vip dia para alguém. creditos deste ultimo foi do kekox da otland net. com isto a vip fucionou tranquilo resolvendo assim o problema de muitos que queriam deixar a premium pra todos free e ter players com vantagens pelo vip que agora e possivel pelo gesior xD! bom pessoal agora tudo prontinho da use no item o nome vip aparece compra pelo site se otrna vip e pelo comando /vip add 30 nick o status vip tb fico ok no site uso o client 8.54 e o gesior e jogo acima citados. meu site: http://blackout-pvp.servegame.com:8090/site atualizado...1 ponto
-
LEIA ATENTAMENTE E SEM PREGUIÇA! (para um trabalho bem feito) * Opção de download rapido: Download - Rme 2.1 + Tibia.dat e spr Bom galera muito nego aqui no XTibia ta se matando para poder conseguir abrir o REMERES MAP EDITOR na versão 2.1 (8.60x). Claro ja foram postados tutoriais solucionando o problema do mesmo. Porém esse aqui é diferente e 100% cérto. Vou ensinar perfeitamente como você pode abrir seu REMERES de outra forma sem que isso se torne um problema maldito de solucionar! Antes de tudo: Desinstale seu REMERES e seu TIBIA Agora! Primeiramente você vai diretamente no site OFFICIAL do Remeres Map Editor abaixo: SITE OFFICIAL: Clique Aqui Para faser o download. Após ter feito o download do Remeres, vá direto para o outro site abaixo: SITE OFFICIAL: Clique Aqui e baixe a versão do Tibia 8.60x (OBS: se você tem o tibia baixado no seu PC de qualquer outro site, desinstale-o.) PRONTO! já baixou os dois arquivos acima? Muito bem, agora vamos faser o seguinte: 1° Vá para a pasta: Meu Computador > Disco Local (C:) > Arquivos de Programas > Tibia 2° Na pasta do Tibia existem dois arquivos super importantes para esse procedimento, chamados: Tibia.spr e Dat, copie-os! 3° Volte para a pasta: Arquivos de Programas e crie uma nova pasta chamada: SPR 4° Dentro désta pasta SPR criada, você vai colar os dois arquivos: Tibia.spr e Dat. (Feche) 5° Abra seu Remeres map editor 6° Quando Aparecer a mensagem para procurar "Couldn't Find Tibia.dat Or Tibi.spr" você vai abrir a pasta SPR que criou a pouco! PRONTO! Seu Remeres map editor está pronto para ser ultilizado =D Dúvidas? (MSN: fefo_wg@hotmail.com) Se possível o teste, e aprovação do tutorial; Rep+ Recomende para seus amigos. :XTibia_smile:1 ponto
-
Como Postar Imagens No Imageshack
luisfe23 reagiu a Temperance por um tópico no fórum
Haaaaail XTibia!! Introdução Bom... Diversos iniciantes querem postar fotos em seus tópicos, mas temos um limite de Uploads de 25mb. E esse limite Consequentemente tem que ser respeitado, então acaba-se por não postar mais fotos quando ele termina. Então entra os sites do uploads. No caso, eu irei usar o site de uploads de imagens ImageShack http://imageshack.us/. Metodo: Primeiramente, entre no site do ImageShack http://imageshack.us/. Lá, vc irá encontrar uma barra de tarefas do site. Selecione qual o seu tipo de Upload no campo Carregar. No caso, será imagens/videos. Agora, clique no botão e selecione o arquivo que vc deseja fazer o upload. Após selecionar, clique em Espere a Imagem carregar. E pronto! A imagem foi carregada com sucesso! ;] Espero que tenha ajudado Att, Temperance1 ponto -
Pessoal, estou aqui com um novo tutorial (avá) e demorei um tempinho pra fazer... Espero que gostem e que o mesmo seja aprovado! Tutorial a pedido do membro Gremiista, que postou em "Pedidos de tutoriais" e eu fiz isso pra ele Tutorial de caves do Koddy Tutorial de nature do Koddy1 ponto
-
Crystal Server Venho até aqui para lhes trazer o Crystal Server (Ice Fenix) O mapa deste servidor é o Evolutions, mas estamos desenvolvendo um próprio, caso você esteja afim de usar este mapa Evolutions você pode ultilizar, mas é bom verificarem se há bugs no mapa, pois não nos preucupa-mos com este mapa, apenas com o servidor. Para reportar bugs (Link Removido) Evite flood neste tópico [ CHANGELOG Project Name Crystal Server Version: 0.2.2 Codename: Ice Fenix License: GNU GPLv3 ] [ 0.1.0 A = Tag "log" para commandos (Tryller) A = Protocolo 8.54 (SVN, Tryller) A = Items 8.54 (SVN, Tryller) A = Outfits 8.54 (SVN, Tryller) A = Novos values para weapons (sword, axe, club, rod)(Tryller) A = Comando /premium playername days para GOD's (Tryller) A = Novos commandos para players (Tryller) A = Novas configurações para account manager (Tryller) A = Novas configurações para guilds (Tryller) A = Novas configurações para o sistema de premium account (Tryller) A = Novas configurações para critical hit (Tryller) A = Novas configuraçoes para sistema de cap (Tryller) M = Talkactions setWorldType /pvp, /clean, /B, /i , /n., /bc, /closeserver, /openserver, /m, /summon (Tryller) M = MOD buypremium (Tryller) D = Talkactions em lua /mode, !pvp, !q, !uptime, /clean, !serverinfo, /b, /i, /bc, openserver & /closeserver, /s, !commands (Tryller) D Em data/MODS changender_command.xml, custommonsters.xml, customspells.xml, firstitems.xml, highscorebook.xml (Tryller) D = No distro blacklist code, file's protocolhttp (Tryller) ] [ 0.1.1 A = Todos os outfits e addons (Tryller) A = Novo npc de addons (Tryller) A = Novas funçoes para talkactions (Tryller) C = Spell spaming (TFS, Tryller) C = Recuperação da premium stamina (TFS) C = Skull yellow (TFS) C = Ghost mode (TFS) C = Todos os possiveis crashs (TFS, Tryller) C = Outfits.xml (Tryller) D = Commands.xml (Tryller) D = Preço e numero de dias premium do config.lua (Tryller) ] [ 0.1.3 A = Versão GUI do executavel (Tryller) A = Mnu "About" na versão GUI, lá você encontra informações sobre o servidor (Tryller) A = Novo sistema para verificar se o servidor está atualizado, (Tryller) C = Problema de incompatibilidade com Gesior account maker (Tryller) ] [ 0.1.3 A = Commands.xml (Tryller) A = reloads para commands.xml (Tryller) A = Warsystem adicionado nas sources (TFS, Tryller) A = Adicionado "emblem" para monstros e npcs (TFS, Tryller) M = Agora commandos e talkactions não são mais definidos por "access" e sim por "group" (Tryller) C = Arrumado problema com QuestLog (Tryller) D = "access" dos commandos e talkactions (Tryller) ] [ 0.1.8 A = 8.62 Protocolo suport (SVN) A = 8.60 Items (SVN) A = Sistema de cap configuravel no config.lua (Tryller) C = death debug (TFS) C = sqlite bug em disband guild (TFS) C = unified spells typo (TFS) C = bug que poderia ser usado para criar items (TFS) ] [ 0.1.9 A = Novas configurações para o account manager no config.lua (Tryller) A = Guild Wars funcionando perfeitamente (TFS, Tryller) A = Database atualizando automaticamente para adicionar o guild wars sem resetar o server (Tryller, TFS) A = Sistema de noticias, para ver uma noticia use !notice, e para editar vá no arquivo data/XML/notices.xml (Tryller) A = Mais items 8.6 funcionando corretamente - armors - shields - swords e mais... (Tryller) M = Loot dos monstros não cai mais bag, e já cai amontoado (Tryller) M = Legion helmet não dropa mais de rotworms (Tryller) M = Nome dos items de beholder agora é bonelord (Tryller) M = Agora os player já ganham acesso à todas as outfits apenas pagando premium (Tryller) ] [ 0.2.0 A = Adicionado sistema de VIP - 2 novas funções lua - getPlayerVipDays(cid), doPlayerAddVipDays(cid, days) - comandos do vip system /vip playerName, 1, adiciona 1 dia de VIP ao player, !vip mostra quantos dias vip o player possui (Tryller) A = Adicionado comando para GOD's adicionar premium ao player /premium playerName, 1, adiciona 1 dia de premium ao player (Tryller) A = 2 novas funções lua - getCreatureStorage() & getCreatureStorageList(cid) (TFS) A = NPC de Addon C = Corrigido bug no Global Save - em alguns casos, ele estava funcionando uma hora antes do previsto (TFS) C = Crash bug enquanto estiver usando impressão com null ou tables (TFS) C = Bug do sistema de noticias (TFS) M = Diminuiu o tempo de sleep quando o servidor inicia (de 10 segundos para 1 segundo) - Também foi alterado na SVN, então vamos ver se há alguma desvantagem (SVN) M = Aprimorado sistema de premium account (Tryller) M = data/talkactions/scripts/frags.lua (TFS) M = Mostrar a descrição do erro sqlite quando o servidor não conseguiu conexão M = data/lib/050-functions.lua - doSummonCreature function (TFS) M = Alterado as opções de reload, sem necessidade de reiniciar - experienceStages, useFragHandler, advancedFragList (TFS) ] [ 0.2.1 A = data/XML/commands.xml (Tryller) A = Todos os items 8.6 funcionando (items.xml) (SVN, Tryller) A = Versão para 8.60 (Tryller) A = Novos comandos - /addon - /bless (Tryller) C = Bugs em conexão MySql (Tryller) C = Bugs em houses (TFS, Tryller) C = Bugs em Guilds (TFS) C = Alguns erros com reloads (Tryller) C = Jewelled Backpack, antes tava key ring e não dava de usar como backpack (Tryller) C = Bug em spellbook of dark mysteries (Tryller) M = data/talkactions/talkactions.xml (Tryller) M = data/movements/scripts/citizen.lua (Tryller) M = data/items/items.xml (Tryller) M = data/movements/movements.xml (Tryller) M = data/weapowns/weapons.xml (Tryller) D = data/lib/000-constant.lua - reload types (Tryller) D = data/talkactions/scripts/reload.lua (Tryller) D = data/talkactions/scripts/commands.lua (Tryller) D = data/talkactions/scripts/mode.lua (Tryller) D = data/talkactions/scripts/pvp.lua (Tryller) S = Systema de verificação de versão do servidor (Tryller) ] [ 0.2.2 A = Novos comandos para players !exp, !mana, !r (Tryller) A = Mais items 8.6 adcionados - Corpses, Grounds (Picachu) C = Erros com sqlie (Tryller) C = Erro no war system (Tryller, Picachu) C = Eros em conexão (Tryller) C = Erros da versão 8.60 (Tryller) M = data/npc/lib - isto fará as libs de npc dos ot 8.5 compativeis com o servidor (Tryller) ] Download do Servidor (Links Removidos) Caso você goste do nosso trabalho add Rep++ O Servidor foi compilado com o war system, mas não liberei os scripts, caso queira os scripts faça uma doação no paypal para o endereço a baixo. Faça uma doação no paypal.com para ajudar nosso servidor, doe para shynzomapper@hotmail.com. acc do GOD é 222222/password Não troque a senha na database pois este servidor não usa mais password plain se você mudar lá vai dizer que a senha ta errada, você deve trocar a senha no Account Manager.1 ponto
-
map: real server versão: 8.50 Funcionando BASICO DE CREATURES Olá sou o daniel, vou explicar para quem não sabe um basico, provavelmente ja deve ter um tutorial deste tipo, mas vamos lá! Começando a Criar. Vá em Data/monster/Nome da pasta do tipo de creature, E crie uma pasta monster.lua Vamos Começar: Primeiro Passo: <?xml version="1.0" encoding="UTF-8"?> > Não Sei Muito Bem Para Que Serve, Mas acho que Precisa Disto Para Funcionar ;D. Terceiro Passo: Monster Name: Nome do Monstro Que irá aparecer no Servidor. NameDescription: nameDescription é o que irá aparecer entre "You see" e "." quando você der look na criatura. Experience="0" Experiencia que a creatura irá lhe conseder ao mata-la. Speed="150" (Rapidez, velocidade que a creatura irá andar, aconselho nao colocar acima de 2000) Quarto Passo: health now: é a life que o monstro tera normalmente ao abrir o servidor. max: Não coloque o max menos do que o health now, lhe calsara uma confusão danada, o max e o maximo de vida que a creatura vai ter! Quinto Passo: <look type="31" corpse="5970"/> look type: será o outfit (roupa) que a sua creatura estará usando. corpse: Será o que o monster irá se transformar após morrer. Sesto Passo: <targetchange interval="2000" chance="20"/> Chance do target do monster, aconselho nao mexer, nao importa muito em alguns casos.. Sétimo Passo: <strategy attack="100" defense="0"/> Stratégia do attack do monster, também nao significa muuita coisa mas não mexa. Oitavo Passo: Vou Postar os Mais Faceis Summonable: Se o monster pode ser sumonado ou nao. Attackable: Se Vai Atacar ou Não. Hostila: Fas Parte do funcionamento do movimento do monster, deixe 0. pushable: Se o monster pode ser puxado ou não. canpushitens: Se ao se movimentar o monster irá impurras objetos que estejam em seu caminho. targetdistance: A Distancia que o monster irá ficar da presa. Nono Passo: <attacks> <attack name="melee" interval="2000" skill="10" attack="2"/> </attacks> attack melee: tipo do attack que o monster irá usar, pode colocar, melee, death, holy, ice, energy, earth.. Interval: Intervalo de golpe, ou seja se ele vai hitar mais rapido ou mais devagar em voce, aconselho nao deixar abaixo de 500, a não ser que queira uma coisa bem editada ;D skill e attack:e o skill do monster e o attack, é a mesma coisa de você ter skill 10 e uma sword com attack 2. Décimo Passo Ali como pode ver é a defesa do monster, voce pode aumentar ela para que seja mais dificil o jogador mata-lo. Decimo 1º Passo: Aqui é facil, provavelmente você deve saber, é a mesma coisa que você usar uma WAND de fogo para matar um Dragon Lord (DL) ex:<immunity invisible="0"/> <<< Ali é se o monster vai lhe ver invisivel ou não. Decimo 2º Passo: Bom, para mim esta é a parte mais facil, aqui voce coloca o item que o monster vai lhe dar, no caso um 'meat' e um 'worm' Ali você pode adicionar itens, armors, legs, gold coins, crystal coins, platium coins, boots, helmets, rings, e itens dos sets de tibia colocando o ID do Iten Desejado. E Por ultimo Coloque na pasta do monster isto (sempre por final) Pronto Voce Criou Um Monster. Agora Vá ao Documento XML na pasta data/monsters e adicione isto! Monster name: > Obviamente o Nome do Monster. file="Misc/Monster.xml"/> Local onde está localizada a pasta do monster, se estiver na pasta canines dai ficara assim> <monster name="Dog" file="Canines/dog.xml"/> Veja Como Ficou Nosso Monster: Gente é o Basico Mas garanto por mim mesmo que ajudarei muitos, tirem suas duvidas, postem minhas falhas, falem no que devo melhorar e comentem, podem chingar reclamar ou insultar, o importante é que trouce um conteudo ao amado xTibia. Se Gostaram de-me um REP. Por: Daniel Camilo Diretamente ao xTibia. Não Aceito Copias, Se Vierem em Algum Lugar me Avisem. Desculpe não ter colocado alguns 'quote' nos 'Passos' Não Cabiam mais, espero que tenham Intendido ;D1 ponto
-
[Talkaction] Teleport Parecido Com Do P.o
willscarlate reagiu a MatheusGlad por um tópico no fórum
Vá em talkactions/scripts e crie um arquivo.lua com o nome de poketeleport e bote o seguinte script dentro: function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end function onSay(cid, words, param) local configs = { needpa = TRUE, needlvl = {TRUE, level = 50}, } local cidades = { ["Carlin"] = {x=1000,y=1000,z=7, pokenames = {"Rat", "Bug"}, time = 1}, ["Thais"] = {x=1002,y=1000,z=7, pokenames = {"Rat", "Bug"}, time = 2}, } teleport = FALSE if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "You need to be a premmium account to use teleport.") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "You need to be level "..configs.needlvl.level.." or higher to use teleport.") end if #getCreatureSummons(cid) <= 0 then return doPlayerSendCancel(cid, "You need to have a monster summoned.") end for i,x in pairs(cidades) do for _,z in pairs(getCreatureSummons(cid)) do if isInArray(x.pokenames, getCreatureName(z)) then if param:lower() == "\"" .. i:lower() then if os.time()-getPlayerStorageValue(cid, 64231) <= x.time*60 then minutes,seconds = getTime(x.time*60-(os.time()-getPlayerStorageValue(cid, 64231))) return doPlayerSendCancel(cid, "You need wait " .. minutes .. " minutes and " .. seconds .. " seconds.") else doTeleportThing(cid, x) doTeleportThing(z, x) setPlayerStorageValue(cid, 64231, os.time()) teleport = TRUE break end end end end end if not teleport then return doPlayerSendCancel(cid, "This city don't exists or not is able to go in there with teleport or this monster don't able to use teleport.") end return TRUE end Depois va em talkactions.xml e bote a seguinte TAG: <talkaction words="!teleport" event="script" value="poketeleport.lua"/> Como configurar o script: Mecha nessas partes: Legendas: -- Use TRUE ou FALSE -- Vermelho - Se precisa de premmium account para usar a talkaction. Azul - Se precisa de level, e qual level precisa. Rosa - As informaçoes sao, respectivamente: A pos pra aonde o teleport vai levar, os nomes dos pokes que podem levar para akele local, o tempo em minutos que demorara para usar novamente o teleport para akele local. Como adicionar novos locais para teleport: Copie a ultima linha, no caso: Em seguida cole logo abaixo ficando assim: Depois eh so mudar para as informaçoes que voce queira... Como usar a talkaction in-game: Basta voce falar !teleport "NOMEDOLOCAL Bem nao deu pra explicar muito bem por causa do meu tempo, espero que voces consigam entender. De suas opnioes para as proximas versoes do script... Dica Importante! Se voce for botar o local de uma parte que for PROTECTION ZONE o seu pokemon ou summon nao ira andar e ficara preso, para que isso nao aconteça va em config.lua e procure por isso (CTRL+F): Se estiver false, mude para true para que o summon seja teleportado ate o player quando ele for para longe.1 ponto -
Sou iniciante em scripter e quero aprender muito ainda, esse script é um dos meus primeiros do começo e sei que todo mundo vai gostar. __________________________________________ TalkAction Faça um arquivo .lua na pasta data/talkactions/scripts do seu servidor e cole isso dentro deste arquivo .lua: local pokes = {'Electabuzz', 'Alakazam', 'Abra', 'Hypno', 'Mr Mime', 'Electrode', 'Magnemite', 'Pikachu', 'Raichu'} local exhautStorage = 24622222 local time = 300 local cd = 60 function onSay(cid, words, param, channel) local summons = getCreatureSummons(cid) if #summons == 0 then doPlayerSendCancel(cid,"Sumone um pokemon para usar light.") return true end if not isInArray(pokes, getCreatureName(summons[1])) then doPlayerSendCancel(cid,"Este pokemon não usa light.") return true end if exhaustion.get(cid, exhautStorage) then doPlayerSendCancel(cid,"Aguarde o cd.") return true end exhaustion.set(cid, exhautStorage, cd) doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", light!", 1) doSetCreatureLight(getCreatureSummons(cid)[1], 10, 210, time*1000) return true end Depois abra o talkactions.xml localizada na pasta data/talkactions e cole isto dentro: Pronto. Script instalado. • Configurando [~] Preto - Nome dos pokemons que usa light. Vermelho - Storage do exausted. Vinho - Tempo em milésimos do light. Azul - Tempo em segundos para usar light. Action Faça um arquivo .lua na pasta data/actions/scripts do seu servidor e cole isso dentro deste arquivo .lua: local pokes = {'Electabuzz', 'Alakazam', 'Abra', 'Hypno', 'Mr Mime', 'Electrode', 'Magnemite', 'Pikachu', 'Raichu'} local exhautStorage = 24622222 local time = 300 local cd = 60 function onUse(cid, item, frompos, item2, topos) if not isCreature(item2.uid) or getCreatureMaster(item2.uid) ~= cid then return doPlayerSendCancel(cid,"Please use in your pokemon.") end local summons = getCreatureSummons(cid) if #summons == 0 then doPlayerSendCancel(cid,"Sumone um pokemon para usar light.") return true end if not isInArray(pokes, getCreatureName(summons[1])) then doPlayerSendCancel(cid,"Este pokemon não usa light.") return true end if exhaustion.get(cid, exhautStorage) then doPlayerSendCancel(cid,"Aguarde o cd.") return true end exhaustion.set(cid, exhautStorage, cd) doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", light!", 1) doSetCreatureLight(getCreatureSummons(cid)[1], 10, 210, time*1000) return true end Agora adicione isso no actions.xml: Adicionando um novo pokemon: Coloque uma virgula no ultimo pokemon da tabela e depois cole isto 'Elekid' depois da vírgula. Créditos: Aksz Dúvidas & Bug's? Poste aqui mesmo. Agora vocês tem 2 opções... Att, Aksz. PS: Este sistema é do meu ot de pokemon, mais gostei de postar por que são um dos meus melhores scripts que fiz.1 ponto
-
Traduzindo Npc's (Simples Tuto)
luisfe23 reagiu a matamatama por um tópico no fórum
Olha já vi muita gente atras disso inclusive eu...mas eu não achava até que fui mexer nas npc e consegui O Que Isso Vai Fazer "OBIVIO" -Bom Tipow Vai De Sua Escolha Como Mudar Hi Pra Oi.. Etc.. Mão A Obra Bom Primeiro Eu Queria Falar O Seguinte Que Não é Todos Os Npcs Se o Npc For Assim dá : <?xml version="1.0" encoding="UTF-8"?> <npc name="Akka Teleport" script="tst.lua" attackable="false" skull="0" emblem="0" walkinterval="5000" floorchange="false"> <health now="185" max="185"/> <look type="152" head="73" body="82" legs="94" feet="49" addons="3" corpse="2212"/> <parameters> <parameter key="travel" value="1" /> <parameter key="travel_destinations" value="Temple,958,1018,7,0;" /> </parameters> </npc> Mas Se Tiver O Massage_Greet Nas Própria Xml Não dá: <parameter key="message_greet" Bom Primeiro Vá Em Data>Npc>Lib>npcsystem> Abra O npchandler.lua e avera algo Parecido Com Isso -- Advanced NPC System (Created by Jiddo), -- Modified by Talaturen. if(NpcHandler == nil) then -- Constant talkdelay behaviors. TALKDELAY_NONE = 0 -- No talkdelay. Npc will reply immedeatly. TALKDELAY_ONTHINK = 1 -- Talkdelay handled through the onThink callback function. (Default) TALKDELAY_EVENT = 2 -- Not yet implemented -- Currently applied talkdelay behavior. TALKDELAY_ONTHINK is default. NPCHANDLER_TALKDELAY = TALKDELAY_ONTHINK -- Constant conversation behaviors. CONVERSATION_DEFAULT = 0 -- Conversation through default window, like it was before 8.2 update. CONVERSATION_PRIVATE = 1 -- Conversation through NPCs chat window, as of 8.2 update. (Default) --Small Note: Private conversations also means the NPC will use multi-focus system. -- Currently applied conversation behavior. CONVERSATION_PRIVATE is default. NPCHANDLER_CONVBEHAVIOR = CONVERSATION_PRIVATE -- Constant indexes for defining default messages. MESSAGE_GREET = 1 -- When the player greets the npc. MESSAGE_FAREWELL = 2 -- When the player unGreets the npc. MESSAGE_BUY = 3 -- When the npc asks the player if he wants to buy something. MESSAGE_ONBUY = 4 -- When the player successfully buys something via talk. MESSAGE_BOUGHT = 5 -- When the player bought something through the shop window. MESSAGE_SELL = 6 -- When the npc asks the player if he wants to sell something. MESSAGE_ONSELL = 7 -- When the player successfully sells something via talk. MESSAGE_SOLD = 8 -- When the player sold something through the shop window. MESSAGE_MISSINGMONEY = 9 -- When the player does not have enough money. MESSAGE_NEEDMONEY = 10 -- Same as above, used for shop window. MESSAGE_MISSINGITEM = 11 -- When the player is trying to sell an item he does not have. MESSAGE_NEEDITEM = 12 -- Same as above, used for shop window. MESSAGE_NEEDSPACE = 13 -- When the player don't have any space to buy an item MESSAGE_NEEDMORESPACE = 14 -- When the player has some space to buy an item, but not enough space MESSAGE_IDLETIMEOUT = 15 -- When the player has been idle for longer then idleTime allows. MESSAGE_WALKAWAY = 16 -- When the player walks out of the talkRadius of the npc. MESSAGE_DECLINE = 17 -- When the player says no to something. MESSAGE_SENDTRADE = 18 -- When the npc sends the trade window to the player MESSAGE_NOSHOP = 19 -- When the npc's shop is requested but he doesn't have any MESSAGE_ONCLOSESHOP = 20 -- When the player closes the npc's shop window MESSAGE_ALREADYFOCUSED = 21 -- When the player already has the focus of this npc. MESSAGE_PLACEDINQUEUE = 22 -- When the player has been placed in the costumer queue. -- Constant indexes for callback functions. These are also used for module callback ids. CALLBACK_CREATURE_APPEAR = 1 CALLBACK_CREATURE_DISAPPEAR = 2 CALLBACK_CREATURE_SAY = 3 CALLBACK_ONTHINK = 4 CALLBACK_GREET = 5 CALLBACK_FAREWELL = 6 CALLBACK_MESSAGE_DEFAULT = 7 CALLBACK_PLAYER_ENDTRADE = 8 CALLBACK_PLAYER_CLOSECHANNEL = 9 CALLBACK_ONBUY = 10 CALLBACK_ONSELL = 11 -- Addidional module callback ids CALLBACK_MODULE_INIT = 12 CALLBACK_MODULE_RESET = 13 -- Constant strings defining the keywords to replace in the default messages. TAG_PLAYERNAME = '|PLAYERNAME|' TAG_ITEMCOUNT = '|ITEMCOUNT|' TAG_TOTALCOST = '|TOTALCOST|' TAG_ITEMNAME = '|ITEMNAME|' TAG_QUEUESIZE = '|QUEUESIZE|' NpcHandler = { keywordHandler = nil, focuses = nil, talkStart = nil, idleTime = 90, talkRadius = 4, talkDelayTime = 1, -- Seconds to delay outgoing messages. queue = nil, talkDelay = nil, callbackFunctions = nil, modules = nil, shopItems = nil, -- They must be here since ShopModule uses "static" functions messages = { -- These are the default replies of all npcs. They can/should be changed individually for each npc. [MESSAGE_GREET] = 'Eae, |PLAYERNAME|! Eu Ja Esperava Você.', [MESSAGE_FAREWELL] = 'Té Mais, |PLAYERNAME|!', [MESSAGE_BUY] = 'Você Quer Comprar |ITEMCOUNT| |ITEMNAME| por |TOTALCOST| gps?', [MESSAGE_ONBUY] = 'Espero Sua Compra.', [MESSAGE_BOUGHT] = 'Bought |ITEMCOUNT|x |ITEMNAME| for |TOTALCOST| gold.', [MESSAGE_SELL] = 'Voce Realmente Quer Vender |ITEMCOUNT| |ITEMNAME| Por |TOTALCOST| gold coins?', [MESSAGE_ONSELL] = 'Obrigado |ITEMNAME|, |PLAYERNAME| gold.', [MESSAGE_SOLD] = 'Sold |ITEMCOUNT|x |ITEMNAME| for |TOTALCOST| gold.', [MESSAGE_MISSINGMONEY] = 'Você Num Tem A Grana.', [MESSAGE_NEEDMONEY] = 'NEED.', [MESSAGE_MISSINGITEM] = 'Você não tem o tal item, |PLAYERNAME|!', [MESSAGE_NEEDITEM] = 'Você não tem esse objeto.', [MESSAGE_NEEDSPACE] = 'Você Não Tem Cap.', [MESSAGE_NEEDMORESPACE] = 'Você Não Tem Cap Pra Todos Os Itens.', [MESSAGE_IDLETIMEOUT] = 'Proximo, Por Favor!', [MESSAGE_WALKAWAY] = 'Mal Educado Hunted (FOREVER)!', [MESSAGE_DECLINE] = 'Not good enough, is it... ?', [MESSAGE_SENDTRADE] = 'Esta E Minha Offerta, |PLAYERNAME|. Você Compra?', [MESSAGE_NOSHOP] = 'Eu Não Estou Ofertando Nada.', [MESSAGE_ONCLOSESHOP] = 'Obrigado,Volte Mais Tarde.', [MESSAGE_ALREADYFOCUSED]= '|PLAYERNAME|! Eu Estou Falando Com Você ...', [MESSAGE_PLACEDINQUEUE] = '|PLAYERNAME|, please wait for your turn. There are |QUEUESIZE| customers before you.' } } -- Creates a new NpcHandler with an empty callbackFunction stack. function NpcHandler:new(keywordHandler) local obj = {} obj.callbackFunctions = {} obj.modules = {} if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then obj.focuses = {} obj.talkStart = {} else obj.queue = Queue:new(obj) obj.focuses = 0 obj.talkStart = 0 end obj.talkDelay = {} obj.keywordHandler = keywordHandler obj.messages = {} obj.shopItems = {} setmetatable(obj.messages, self.messages) self.messages.__index = self.messages setmetatable(obj, self) self.__index = self return obj end -- Re-defines the maximum idle time allowed for a player when talking to this npc. function NpcHandler:setMaxIdleTime(newTime) self.idleTime = newTime end -- Attackes a new keyword handler to this npchandler function NpcHandler:setKeywordHandler(newHandler) self.keywordHandler = newHandler end -- Function used to change the focus of this npc. function NpcHandler:addFocus(newFocus) if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then if(self:isFocused(newFocus)) then return end table.insert(self.focuses, newFocus) else self.focuses = newFocus end self:updateFocus() end NpcHandler.changeFocus = NpcHandler.addFocus --"changeFocus" looks better for CONVERSATION_DEFAULT -- Function used to verify if npc is focused to certain player function NpcHandler:isFocused(focus) if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then for k,v in pairs(self.focuses) do if v == focus then return true end end return false end return (self.focuses == focus) end -- This function should be called on each onThink and makes sure the npc faces the player it is talking to. -- Should also be called whenever a new player is focused. function NpcHandler:updateFocus() if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then for pos, focus in pairs(self.focuses) do if(focus ~= nil) then doNpcSetCreatureFocus(focus) return end end doNpcSetCreatureFocus(0) else doNpcSetCreatureFocus(self.focuses) end end -- Used when the npc should un-focus the player. function NpcHandler:releaseFocus(focus) if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then if(not self:isFocused(focus)) then return end local pos = nil for k,v in pairs(self.focuses) do if v == focus then pos = k end end table.remove(self.focuses, pos) self.talkStart[focus] = nil closeShopWindow(focus) --Even if it can not exist, we need to prevent it. self:updateFocus() else closeShopWindow(focus) self:changeFocus(0) end end -- Returns the callback function with the specified id or nil if no such callback function exists. function NpcHandler:getCallback(id) local ret = nil if(self.callbackFunctions ~= nil) then ret = self.callbackFunctions[id] end return ret end -- Changes the callback function for the given id to callback. function NpcHandler:setCallback(id, callback) if(self.callbackFunctions ~= nil) then self.callbackFunctions[id] = callback end end -- Adds a module to this npchandler and inits it. function NpcHandler:addModule(module) if(self.modules ~= nil) then table.insert(self.modules, module) module:init(self) end end -- Calls the callback function represented by id for all modules added to this npchandler with the given arguments. function NpcHandler:processModuleCallback(id, ...) local ret = true for i, module in pairs(self.modules) do local tmpRet = true if(id == CALLBACK_CREATURE_APPEAR and module.callbackOnCreatureAppear ~= nil) then tmpRet = module:callbackOnCreatureAppear(unpack(arg)) elseif(id == CALLBACK_CREATURE_DISAPPEAR and module.callbackOnCreatureDisappear ~= nil) then tmpRet = module:callbackOnCreatureDisappear(unpack(arg)) elseif(id == CALLBACK_CREATURE_SAY and module.callbackOnCreatureSay ~= nil) then tmpRet = module:callbackOnCreatureSay(unpack(arg)) elseif(id == CALLBACK_PLAYER_ENDTRADE and module.callbackOnPlayerEndTrade ~= nil) then tmpRet = module:callbackOnPlayerEndTrade(unpack(arg)) elseif(id == CALLBACK_PLAYER_CLOSECHANNEL and module.callbackOnPlayerCloseChannel ~= nil) then tmpRet = module:callbackOnPlayerCloseChannel(unpack(arg)) elseif(id == CALLBACK_ONBUY and module.callbackOnBuy ~= nil) then tmpRet = module:callbackOnBuy(unpack(arg)) elseif(id == CALLBACK_ONSELL and module.callbackOnSell ~= nil) then tmpRet = module:callbackOnSell(unpack(arg)) elseif(id == CALLBACK_ONTHINK and module.callbackOnThink ~= nil) then tmpRet = module:callbackOnThink(unpack(arg)) elseif(id == CALLBACK_GREET and module.callbackOnGreet ~= nil) then tmpRet = module:callbackOnGreet(unpack(arg)) elseif(id == CALLBACK_FAREWELL and module.callbackOnFarewell ~= nil) then tmpRet = module:callbackOnFarewell(unpack(arg)) elseif(id == CALLBACK_MESSAGE_DEFAULT and module.callbackOnMessageDefault ~= nil) then tmpRet = module:callbackOnMessageDefault(unpack(arg)) elseif(id == CALLBACK_MODULE_RESET and module.callbackOnModuleReset ~= nil) then tmpRet = module:callbackOnModuleReset(unpack(arg)) end if(not tmpRet) then ret = false break end end return ret end -- Returns the message represented by id. function NpcHandler:getMessage(id) local ret = nil if(self.messages ~= nil) then ret = self.messages[id] end return ret end -- Changes the default response message with the specified id to newMessage. function NpcHandler:setMessage(id, newMessage) if(self.messages ~= nil) then self.messages[id] = newMessage end end -- Translates all message tags found in msg using parseInfo function NpcHandler:parseMessage(msg, parseInfo) local ret = msg for search, replace in pairs(parseInfo) do ret = string.gsub(ret, search, replace) end return ret end -- Makes sure the npc un-focuses the currently focused player function NpcHandler:unGreet(cid) if(not self:isFocused(cid)) then return end local callback = self:getCallback(CALLBACK_FAREWELL) if(callback == nil or callback()) then if(self:processModuleCallback(CALLBACK_FAREWELL)) then if(self.queue == nil or not self.queue:greetNext()) then local msg = self:getMessage(MESSAGE_FAREWELL) local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid) } msg = self:parseMessage(msg, parseInfo) self:say(msg, cid) self:releaseFocus(cid) self:say(msg) end end end end -- Greets a new player. function NpcHandler:greet(cid) if(cid ~= 0) then local callback = self:getCallback(CALLBACK_GREET) if(callback == nil or callback(cid)) then if(self:processModuleCallback(CALLBACK_GREET, cid)) then local msg = self:getMessage(MESSAGE_GREET) local parseInfo = { [TAG_PLAYERNAME] = getCreatureName(cid) } msg = self:parseMessage(msg, parseInfo) self:say(msg) self:addFocus(cid) self:say(msg, cid) end end end end -- Handles onCreatureAppear events. If you with to handle this yourself, please use the CALLBACK_CREATURE_APPEAR callback. function NpcHandler:onCreatureAppear(cid) local callback = self:getCallback(CALLBACK_CREATURE_APPEAR) if(callback == nil or callback(cid)) then if(self:processModuleCallback(CALLBACK_CREATURE_APPEAR, cid)) then -- end end end -- Handles onCreatureDisappear events. If you with to handle this yourself, please use the CALLBACK_CREATURE_DISAPPEAR callback. function NpcHandler:onCreatureDisappear(cid) local callback = self:getCallback(CALLBACK_CREATURE_DISAPPEAR) if(callback == nil or callback(cid)) then if(self:processModuleCallback(CALLBACK_CREATURE_DISAPPEAR, cid)) then if(self:isFocused(cid)) then self:unGreet(cid) end end end end -- Handles onCreatureSay events. If you with to handle this yourself, please use the CALLBACK_CREATURE_SAY callback. function NpcHandler:onCreatureSay(cid, class, msg) local callback = self:getCallback(CALLBACK_CREATURE_SAY) if(callback == nil or callback(cid, class, msg)) then if(self:processModuleCallback(CALLBACK_CREATURE_SAY, cid, class, msg)) then if(not self:isInRange(cid)) then return end if(self.keywordHandler ~= nil) then if((self:isFocused(cid) and (class == TALKTYPE_PRIVATE_PN or NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT)) or not self:isFocused(cid)) then local ret = self.keywordHandler:processMessage(cid, msg) if(not ret) then local callback = self:getCallback(CALLBACK_MESSAGE_DEFAULT) if(callback ~= nil and callback(cid, class, msg)) then if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.talkStart[cid] = os.time() else self.talkStart = os.time() end end else if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.talkStart[cid] = os.time() else self.talkStart = os.time() end end end end end end end -- Handles onPlayerEndTrade events. If you wish to handle this yourself, use the CALLBACK_PLAYER_ENDTRADE callback. function NpcHandler:onPlayerEndTrade(cid) local callback = self:getCallback(CALLBACK_PLAYER_ENDTRADE) if(callback == nil or callback(cid)) then if(self:processModuleCallback(CALLBACK_PLAYER_ENDTRADE, cid, class, msg)) then if(self:isFocused(cid)) then local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid) } local msg = self:parseMessage(self:getMessage(MESSAGE_ONCLOSESHOP), parseInfo) self:say(msg, cid) end end end end -- Handles onPlayerCloseChannel events. If you wish to handle this yourself, use the CALLBACK_PLAYER_CLOSECHANNEL callback. function NpcHandler:onPlayerCloseChannel(cid) local callback = self:getCallback(CALLBACK_PLAYER_CLOSECHANNEL) if(callback == nil or callback(cid)) then if(self:processModuleCallback(CALLBACK_PLAYER_CLOSECHANNEL, cid, class, msg)) then if(self:isFocused(cid)) then self:unGreet(cid) end end end end -- Handles onBuy events. If you wish to handle this yourself, use the CALLBACK_ONBUY callback. function NpcHandler:onBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks) local callback = self:getCallback(CALLBACK_ONBUY) if(callback == nil or callback(cid, itemid, subType, amount, ignoreCap, inBackpacks)) then if(self:processModuleCallback(CALLBACK_ONBUY, cid, itemid, subType, amount, ignoreCap, inBackpacks)) then -- end end end -- Handles onSell events. If you wish to handle this yourself, use the CALLBACK_ONSELL callback. function NpcHandler:onSell(cid, itemid, subType, amount, ignoreCap, inBackpacks) local callback = self:getCallback(CALLBACK_ONSELL) if(callback == nil or callback(cid, itemid, subType, amount, ignoreCap, inBackpacks)) then if(self:processModuleCallback(CALLBACK_ONSELL, cid, itemid, subType, amount, ignoreCap, inBackpacks)) then -- end end end -- Handles onThink events. If you wish to handle this yourself, please use the CALLBACK_ONTHINK callback. function NpcHandler:onThink() local callback = self:getCallback(CALLBACK_ONTHINK) if(callback == nil or callback()) then if(NPCHANDLER_TALKDELAY == TALKDELAY_ONTHINK) then if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then for cid, talkDelay in pairs(self.talkDelay) do if(talkDelay.time ~= nil and talkDelay.message ~= nil and os.time() >= talkDelay.time) then selfSay(talkDelay.message, cid) self.talkDelay[cid] = nil end end elseif(self.talkDelay.time ~= nil and self.talkDelay.message ~= nil and os.time() >= self.talkDelay.time) then selfSay(self.talkDelay.message) self.talkDelay.time = nil self.talkDelay.message = nil end end if(self:processModuleCallback(CALLBACK_ONTHINK)) then if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then for pos, focus in pairs(self.focuses) do if(focus ~= nil) then if(not self:isInRange(focus)) then self:onWalkAway(focus) elseif((os.time() - self.talkStart[focus]) > self.idleTime) then self:unGreet(focus) else self:updateFocus() end end end elseif(self.focuses ~= 0) then if(not self:isInRange(self.focuses)) then self:onWalkAway(self.focuses) elseif(os.time()-self.talkStart > self.idleTime) then self:unGreet(self.focuses) else self:updateFocus() end end end end end -- Tries to greet the player with the given cid. function NpcHandler:onGreet(cid) if(self:isInRange(cid)) then if(NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE) then if(not self:isFocused(cid)) then self:greet(cid) return end elseif(NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT) then if(self.focuses == 0) then self:greet(cid) elseif(self.focuses == cid) then local msg = self:getMessage(MESSAGE_ALREADYFOCUSED) local parseInfo = { [TAG_PLAYERNAME] = getCreatureName(cid) } msg = self:parseMessage(msg, parseInfo) self:say(msg) else if(not self.queue:isInQueue(cid)) then self.queue:push(cid) end local msg = self:getMessage(MESSAGE_PLACEDINQUEUE) local parseInfo = { [TAG_PLAYERNAME] = getCreatureName(cid), [TAG_QUEUESIZE] = self.queue:getSize() } msg = self:parseMessage(msg, parseInfo) self:say(msg) end end end end -- Simply calls the underlying unGreet function. function NpcHandler:onFarewell(cid) self:unGreet(cid) end -- Should be called on this npc's focus if the distance to focus is greater then talkRadius. function NpcHandler:onWalkAway(cid) if(self:isFocused(cid)) then local callback = self:getCallback(CALLBACK_CREATURE_DISAPPEAR) if(callback == nil or callback()) then if(self:processModuleCallback(CALLBACK_CREATURE_DISAPPEAR, cid)) then if(self.queue == nil or not self.queue:greetNext()) then local msg = self:getMessage(MESSAGE_WALKAWAY) local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid) } msg = self:parseMessage(msg, parseInfo) self:say(msg, cid) self:releaseFocus(cid) self:say(msg) end end end end end -- Returns true if cid is within the talkRadius of this npc. function NpcHandler:isInRange(cid) local distance = getDistanceTo(cid) or -1 if(distance == -1) then return false end return (distance <= self.talkRadius) end -- Resets the npc into it's initial state (in regard of the keyrodhandler). -- All modules are also receiving a reset call through their callbackOnModuleReset function. function NpcHandler:resetNpc() if(self:processModuleCallback(CALLBACK_MODULE_RESET)) then self.keywordHandler:reset() end end -- Makes the npc represented by this instance of NpcHandler say something. -- This implements the currently set type of talkdelay. -- shallDelay is a boolean value. If it is false, the message is not delayed. Default value is false. function NpcHandler:say(message, focus, shallDelay) local shallDelay = shallDelay or false if(NPCHANDLER_TALKDELAY == TALKDELAY_NONE or not shallDelay) then if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then selfSay(message, focus) return else selfSay(message) return end end -- TODO: Add an event handling method for delayed messages if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.talkDelay[focus] = { message = message, time = os.time() + self.talkDelayTime, } else self.talkDelay = { message = message, time = os.time() + self.talkDelayTime } end end end Então Vamos Lá Procure Por Esta Frase -- These are the default replies of all npcs. They can/should be changed individually for each npc. Abaixo Disso A Varias Opções Tipow MESSAGE Great = Mensagem que o npc responde quando o player fala hi [MESSAGE_FAREWELL] = Quando O Cara Fala Bye E Por Ai Vai ... Mano Eu Nao Explico Tudo Por Como Eu Achei Isso Recentemente Nem Eu Sei...Mas Use O Tradutor e na Frente Das MESSAGE Sempre Vai Ter Uma Frase Ai Você Tradus EX: [MESSAGE_FAREWELL] = 'Bye,<< Traduza |PLAYERNAME|!', Bom Nesse .lua e so as message feche e salve e ponha como somente leitura... Mas Como Poim Somente Leitura ? So Clikar Com O Botão Direito Do Mouse No Arquivo E Depois Propriedades...La Vai Ter Somente Leitura Marca Clike Em Aplicar E Depois Em OK... Bom Agora Na Mesma Pasta (npcsystem) Abra O npcsystem.lua Bom La Vai Ter Algo Parecido A Isso: -- Advanced NPC System (Created by Jiddo), -- Modified by Talaturen. if(NpcSystem == nil) then -- Loads the underlying classes of the npcsystem. dofile(getDataDir() .. 'npc/lib/npcsystem/keywordhandler.lua') dofile(getDataDir() .. 'npc/lib/npcsystem/queue.lua') dofile(getDataDir() .. 'npc/lib/npcsystem/npchandler.lua') dofile(getDataDir() .. 'npc/lib/npcsystem/modules.lua') -- Global npc constants: -- Keyword nestling behavior. For more information look at the top of keywordhandler.lua KEYWORD_BEHAVIOR = BEHAVIOR_NORMAL_EXTENDED -- Greeting and unGreeting keywords. For more information look at the top of modules.lua FOCUS_GREETWORDS = {'hi', 'hello', 'oi'} FOCUS_FAREWELLWORDS = {'bye', 'farewell', 'cya'} -- The word for requesting trade window. For more information look at the top of modules.lua SHOP_TRADEREQUEST = {'offer', 'trade'} -- The word for accepting/declining an offer. CAN ONLY CONTAIN ONE FIELD! For more information look at the top of modules.lua SHOP_YESWORD = {'yes'} SHOP_NOWORD = {'no'} -- Pattern used to get the amount of an item a player wants to buy/sell. PATTERN_COUNT = '%d+' -- Talkdelay behavior. For more information, look at the top of npchandler.lua. NPCHANDLER_TALKDELAY = TALKDELAY_ONTHINK -- Conversation behavior. For more information, look at the top of npchandler.lua. NPCHANDLER_CONVBEHAVIOR = CONVERSATION_PRIVATE -- Constant strings defining the keywords to replace in the default messages. -- For more information, look at the top of npchandler.lua... TAG_PLAYERNAME = '|PLAYERNAME|' TAG_ITEMCOUNT = '|ITEMCOUNT|' TAG_TOTALCOST = '|TOTALCOST|' TAG_ITEMNAME = '|ITEMNAME|' TAG_QUEUESIZE = '|QUEUESIZE|' NpcSystem = {} -- Gets an npcparameter with the specified key. Returns nil if no such parameter is found. function NpcSystem.getParameter(key) local ret = getNpcParameter(tostring(key)) if((type(ret) == 'number' and ret == 0) or ret == nil) then return nil else return ret end end -- Parses all known parameters for the npc. Also parses parseable modules. function NpcSystem.parseParameters(npcHandler) local ret = NpcSystem.getParameter('idletime') if(ret ~= nil) then npcHandler.idleTime = tonumber(ret) end local ret = NpcSystem.getParameter('talkradius') if(ret ~= nil) then npcHandler.talkRadius = tonumber(ret) end local ret = NpcSystem.getParameter('message_greet') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_GREET, ret) end local ret = NpcSystem.getParameter('message_farewell') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_FAREWELL, ret) end local ret = NpcSystem.getParameter('message_decline') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_DECLINE, ret) end local ret = NpcSystem.getParameter('message_needmorespace') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_NEEDMORESPACE, ret) end local ret = NpcSystem.getParameter('message_needspace') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_NEEDSPACE, ret) end local ret = NpcSystem.getParameter('message_sendtrade') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_SENDTRADE, ret) end local ret = NpcSystem.getParameter('message_noshop') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_NOSHOP, ret) end local ret = NpcSystem.getParameter('message_oncloseshop') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_ONCLOSESHOP, ret) end local ret = NpcSystem.getParameter('message_onbuy') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_ONBUY, ret) end local ret = NpcSystem.getParameter('message_onsell') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_ONSELL, ret) end local ret = NpcSystem.getParameter('message_missingmoney') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_MISSINGMONEY, ret) end local ret = NpcSystem.getParameter('message_needmoney') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_NEEDMONEY, ret) end local ret = NpcSystem.getParameter('message_missingitem') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_MISSINGITEM, ret) end local ret = NpcSystem.getParameter('message_needitem') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_NEEDITEM, ret) end local ret = NpcSystem.getParameter('message_idletimeout') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_IDLETIMEOUT, ret) end local ret = NpcSystem.getParameter('message_walkaway') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_WALKAWAY, ret) end local ret = NpcSystem.getParameter('message_alreadyfocused') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_ALREADYFOCUSED, ret) end local ret = NpcSystem.getParameter('message_placedinqueue') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_PLACEDINQUEUE, ret) end local ret = NpcSystem.getParameter('message_buy') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_BUY, ret) end local ret = NpcSystem.getParameter('message_sell') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_SELL, ret) end local ret = NpcSystem.getParameter('message_bought') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_BOUGHT, ret) end local ret = NpcSystem.getParameter('message_sold') if(ret ~= nil) then npcHandler:setMessage(MESSAGE_SOLD, ret) end -- Parse modules. for parameter, module in pairs(Modules.parseableModules) do local ret = NpcSystem.getParameter(parameter) if(ret ~= nil) then local number = tonumber(ret) if(number ~= 0 and module.parseParameters ~= nil) then local instance = module:new() npcHandler:addModule(instance) instance:parseParameters() end end end end end Bom Como Acho Que Está Obivio...Mas Vamos A Explicação -- Greeting and unGreeting keywords. For more information look at the top of modules.lua FOCUS_GREETWORDS = {'hi', 'hello', 'hey'} FOCUS_FAREWELLWORDS = {'bye', 'farewell', 'cya'} Bom Em Hi,Hello,Hey São As Tres Palavras Do "Hi" para o npc Ai Fica A Sua Escolha Eu Pus Oi,Ola,Eae E No Bye,FareWell,Cya Palavras Do "bye" para o npc Eu Pus Xau,Tchau,Flw Na Linha -- The word for accepting/declining an offer. CAN ONLY CONTAIN ONE FIELD! For more information look at the top of modules.lua SHOP_YESWORD = {'yes'} SHOP_NOWORD = {'no'} no yes e a resposta que o player da quando o npc pergunta e o no para cancelar oque voce falo O Resto Recomendo Não Mecher Porque Eu Não Sei... Se Alguem Saber Mais Opções Me Avisa... MSN: marcosocara18@hotmail.com Desculpe Pelos Os Erros De Porugues E Que Eu Não Do Conta De Escrever Certo No PC... Me Irrita Escrever Certo1 ponto -
NATURE GRASS Aula sobre "Nature Grass" , da escola de mapping, para melhor definição assista pelo site do youtube, não por aqui. Aula Nature(Via Youtube) Link aqui Caso queira baixar o vídeo, você precisa ter no seu computador, o programa TEAM VIEWER, se não tiver baixe pelo site oficial http://www.teamviewe...m/pt/index.aspx . Download: 4Shared Scan: VirusTotal Espero que gostem, REP + . Créditos: Skywar ; por ter postado o vídeo youtube. Brund ; por ter feito a aula, e hospedado o scan. Mappercomand ; pela conta 4shared.1 ponto
-
MageShop/SpellShop Nesse tutorial tentarei mostrar um pouco do que você pode fazer pra deixar sua SpellShop/MageShop bonita sem muito trabalho (pelo menos eu acho que não deu muito trabalho). Então vamos ao conteúdo. Bom você precisa pensar o que é referente a magias e magos. Então vamos pensar juntos (runas, potions, elementos, wands, rods entre outras coisas que você poderá pensar sosinho). Fazendo isso você vai pensar aonde isso vai se encaixar e para você pensar nisso você precisa ter a base da sua Loja pronta. Então vamos criar a mesma. Agora com a base da loja feita (floor principal, segundo floor, roof floor que no caso não foi usado o roof). Vamos ver aonde cada coisa vai ir no meu caso eu já fiz cada ground e parte pensando no detalhe você terá só o trabalho de arrumar umas coisas depois de fazer a base eu já postei arrumada. Agora você vai detalhar o primeiro andar. Onde o seu npc fica, aonde ele faz suas poções aonde ele tem suas ferramentas, seu livros para poder trabalhar. Então é ali aonde você vai colocar os detalhes referentes a isso. Veja como detalhei o meu andar principal. Agora no seu segundo andar é aonde fica pode haver a Nascente do poder, quarto/casa do Npc Mage ou outros detalhes que não foram adicionados no andar principal ( no meu caso eu usei as runas/potions pro “alavanca” que no meu caso não usei alavanca usei outro item. Então adicionei a nascente do poder aonde fica os 4 elementos (energy, ice, tera, fire) e alguns detalhes a mais. Depois disso só rever alguns detalhes algumas coisas que você possa ter esquecido detalhes que você queria testar ou que ache que fique legal e vá testando. Observação: Essa MageShop que usei é de um trabalho que estou fazendo, foi 100% feita por mim mais estou avisando por se caso acontecer um Teaser do trabalho que estou fazendo não julguem antes de saberem. Então é isso galera! Se você gostou do tutorial da um UP pra mim em Rep+ E se você não gostou do tutorial me rebaixe clicando em Rep- :mellow: E comentem dêem dicas ai pra me ajudar em um próximo tutorial trazendo um conteúdo melhor para vocês. E espero que o tutorial ajude ai há muitos.1 ponto
-
Rpg Makers 2
Henrique Moura reagiu a Lopoi2 por um tópico no fórum
Introdução: Num RPG clássico (isso aquele que você usa um pedaço de papel e um dado), uma das coisas mais importantes são os NPCs. Eles que dão missões, vendem itens, e de vez em quando te salvam de algo. O Tibia é um dos MMORPGs mais complexo neste quesito. Diferentemente dos outros, como Perfect World, etc (só conheço esse, kkkk), no Tibia os Players tem de falar com o NPC, não apenas clicar num botão. Pra quem não sabe, no Perfect world, você clica num NPC e aparece uma lista de opções para você falar, isso limita o número de falas possíveis para ele. Já no Tibia você pode tem uma infinidade de palavras para usar, se eu falar abacaxi pro NPC ele vai ouvir, mas no script dele não vai ter nada relacionado, então ele não vai me responder (cara chato). Vocês devem pensar: "Ahh, mas é muito ridiculo, eu chego prum NPC e digo apenas uma palavra e ele me responde, imagina, eu chego pra você e falo 'troca', você possivelmente não entenderia". Mas não acontece isso, quando você fala uma palavra no tibia é como se você estivesse falando uma frase, só que tem de ser uma palavra por causa do script (se não tiver nada haver algum scripter corriga). Então quando você fala "troca", no RPG você está falando "Quero trocar" ou "O que você tem a venda?". Você só fala uma palavra por causa do limite do script. Tipos de NPCs: 1) NPC vendedor: Esse é um NPC padrão, ele simplesmente vende itens, não tem mais nenhuma utilidade. 2) NPC Quest: É o NPC que apenas dá missões. Esse NPC é interessante, e vamos estudar um pouco mais ele a frente. 3) NPC Extra: São os NPCs de Apoio, banqueiros, monges, carteiro, guardas. Eles não tem muitas características pessoais, geralmente são mais "robotizados". 4) NPC Misto: Esse é o melhor NPC, ele pode fazer as três funções acima, e ainda tem uma personalidade forte. Como criar um NPC: Bem, como nas quests, existe uma ficha de NPC que eu criei. Está aqui: Vamos analisar cada item. *Nome:É o nome que terá o NPC, ele pode ser influenciado por sua história, parentes, ou moradia. Digamos que um NPC nasceu em uma cidade chuvosa, e que sua mãe chamasse Nublosa (Não tem nome pior que esse), possivelmente o nome da filha será Aqualisa (achei um pior). *Profissão: A profissão de um NPC é diretamente ligada a sua história, parentes e moradia. Se o pai de um NPC é ferreiro, sua cidade é rica em minérios, e ele passou a vida minerando, possivelmente ele será ferreiro. Mas há um detalhe, o gosto do NPC influencia, se ele gosta da minerar ele pode virar ferreiro, mas e se o pai dele obriga isso? Possivelmente ele não vai virar ferreiro quando crescer. *Raça: "Obviamente essa não muda, se ele nasceu orc ele morrerá orc." Não necessariamente, as vezes ele pede para os deuses para ele mudar de forma, ou ele se disfarça de outro, então só nesses casos ele varia. *Moradia:Geralmente o que modifica a moradia dele é a história dele e a influência de seus parentes. Se ele nasceu um Thais, mas thais foi atacada por carlin e ele foi levado como prisioneiro para carlin, obviamente sua cidade muda. *Vantagens e Desvantagesn: Esse requisitos podem ser trocados por características. As vantagens são aquilo que o NPC é bom, ou gosta. As desvantagens são aquilo que ele não gosta ou tem medo. Por exemplo, um mago pode ser bom no elemento fogo, ter medo de agua, ter a habilidade de domar dragões, e não gostar de barcos. *Parentes: São todos os parentes que influenciaram o NPC, pai, mão, amigo, chefe, etc. Um NPC pode ter matado seu pai, por que um amigo mandou. Conversas: Aqui você coloca as frases padrões, saudação, despedida, comentar sobre seu emprego, seus amigos, etc. As conversas são influenciadas pela sua história, parentes, e quem sabe características. Se um NPC foi escravo na infância, e agora é um milionário, com certeza vai falar se esnobando. 1) NPC Vendedor: Esse NPC basicamente tem uma história, para sabermos seu comportamento, moradia e profissão, vantagens e desvantages, para saber sua profissão e moradia, obviamente um nome. Podemos acrescentar na ficha, os itens que ele vende. 2) NPC Quest: Esse NPC precisa ter uma história, para entender por que ele nos dá tais missões. Ele vai ter moradia, nome, e um comportamento característico. Nesse NPC podemos adicionar um item que mostra suas missões. 3) NPC Extra: Esse NPC só precisa de Nome e profissão, do resto nem é tão importante. 4) NPC Misto: Esse NPC tem tudo, e mais um pouco. Ele pode ter, "Itens que vende", "Quests", "Pensamentos". Os pensamentos no ultimo tipo de NPC são as falas extras que ele tem. Por exemplo, se eu falar pra ele "Limão" ele pode me responder: "Eu gosto dessa fruta, tem muitas em minha casa". Isso pode implicar muito, as vezes existe uma missão onde você precisa encontrar limões, e só existe na casa dele. Bem, por enquanto é só. Créditos: Lopoi2 100%1 ponto -
Introdução: Neste tutorial irei abordar o fantástico mundo das quests. No Tibia global temos quest incrivelmente difíceis (POI), incrivelmente fáceis (The Beging), e algumas misteriosas (SoF). Vamos primeiramente definir o que é um Quest. Dicionário: Quest - é uma missão, onde o jogador (no RPG) deve cumprir alguma tarefa para assim receber seu prêmio. NPC - Non Playable Character (traduzindo personagem não jogavel) é um personagem que, no tibia, geralmente só dá as missões, mas em outros jogos ele pode ajudar nas missões, lutando contra bixos muito fortes, recuperando sua vida etc. Agora vamos ver os tipos de quests presentes no Tibia: -Quest de baú: O tipo mais rídiculo de quest, nem sequer pode ser chamado de quest (veremos por que a seguir). Essa quest é basicamente um baú com um item, não é preciso falar com ninguem, nenhum nivel, e de vez em quando nem é preciso se esforçar. Essas quest não serão tratadas aqui, pois não é preciso um alto QI (nem sequer um baixo QI) para faze-las, e elas não apresentam contexto. Ex: Chain armor quest. Como reconhecer: Simples, procure um baú que contenha um item, e se pergunte "Porque esse item esta aqui?" se você não tiver nenhuma resposta, e não tiver nenhum NPC relacionado a isso, concerteza é uma quest de baú. -Quest NPC único simples: Essa quest é parecida com a quest de baú, só que contem um NPC e uma história. Ex: Legion helmet em rook. Como Reconhecer: Se você precisa de um NPC para cumprir tal missão, e que você precise apenas pegar um item no baú, talvez seja uma quest NPC único simples (se tiver um labirinte, muitos bixos fortes, ou um enredo maior, pode não ser essa) -Quest NPC únicom Complexa: Essa quest envolve apenas um NPC, mas ela pode pedir para você matar monstros, encontrar algo (local, ou outro NPC sem precisar conversar com ele), usar algum item. Ex: 1ª Quest de Farmine. Como reconhecer: você irá falar com um NPC, e ele te pedirá algo, não um item, mas alguma coisa dificil de ser pega, quem sabe tenha até um labirinto. -Quests Multi NPC: Essas quests são as melhores, você tem de conversar com um NPC, ir para outro, fazer algo, matar um bixo. Ex: 3ª Quest de Farmine. Como reconhecer: Se você tiver de falar com 2 NPC's já é uma quest dessa categoria. Criando quests: Um quest não é apenas um baú que você tem de abrir. Numa quest, você tem um NPC, e uma história. Vou lhes ensinar uma maneira pratica de criar quests: "Peguem seus lápis e papéis, pois vamos viajar num incrivel mundo de fantasia e diversão" (Que gay) Certo, peguem um papel, e um lápis. No canto superior esquerdo, esrevam uma frase qualquer (lógico, deve ser o tema da quest). Ex: Meteoro Vamos começar a perguntar "O que preciso fazer?", "Como vou fazer?", "O que aconteceu?", "Onde foi?", etc. Pegamos as resposta e colocamos ao lado da frase chave indicando com setinhas. Ex: Meteoro -> Oqpf: Derrotar elementais de fogo -> Cvf: Atacando eles (derr) -> Oqa: Um meteoro caiu e uns elementais de fogo surgiram -> Of: Numa fazenda na cidade Zorn Agora, vamos pensar no NPC que irá nos dar tal missão. Sempre temos um NPC inicial (NPCi) que irá nos dar uma missão, ele obrigatoriamente vai nos contar uma história, e começar a missão. Vamos fazer uma seta saindo da frase principal (descendo) e no fim dela colocamos o nome do NPCi e entre parenteses o que ele é. Ex: Meteoro |-> Loki (dono da fazenda) Ao lado dele colocaremos a história que ele contará. E embaixo seu pedido. Ex: Loki -> Um meteoro caiu em sua fazenda |-> Missão: Vasculhar o meteoro. Mas uma boa Quest tem mais de um NPC então, nós vamos fazer o NPC secundário (NPCs). Vamos fazer uma seta descendo da frase principal e do NPCi e no fim colocamos o nome do NPCs, entre parenteses o que ele é. Ex: Meteoro |-> Loki |---|-> Morni (mendigo) Agora, vamos pensar no que aconteceu com ele, e o que ele pode nos pedir. Colocamos ao seu lado sua história, e embaixo sua missão. Ex: Morni -> Estava passeando quando viu um clarão no céu |-> Pegar um cristal no meio do meteoro Vamos pensar no que pode acontecer com o jogador, ele pode encontrar um obstáculo e ter de voltar para o NPCi, então vamos fazer uma seta saindo da frase principal pra baixo e colocamos o que aconteceu. Ex: Meteoro |-> Tem uma cerca fechada, e atrás dela temos vários elementais de fogo Depois, vamos fazer uma seta juntando essa frase ao NPCi, e no fim dela colocamos o que o NPCi vai falar sobre o que o jogador viu, e fazemos uma seta pra baixo colocando a missão que ele irá pedir. Ex: Loki |-> Tem uma cerca fechada, e atrás dela temos vários elementais de fogo |---|-> Eles devem ter invadido a fazenda de Loki |-> Preciso que mate alguns deles Agora vamos finalizar a missão, colocamos outra seta saindo da frase principal, com a sigla: PF (parte final). Ai colocamos o que o jogador vai fazer, e por fim seu premio. Ex: Meteoro |-> PF -> Matar alguns elementais -> premio: 10k -> Pegar o cristal -> premio: uma maça Agora é só organizar tudo em uma simples ficha, como esta: Pronto, agora você sabe como fazer uma quest. Créditos: 100% Lopoi2 Se gostou Rep ++ Edit: Criei uma ficha melhor. Comentem.1 ponto
-
[Actions]Box System
churupetinha reagiu a tinfer por um tópico no fórum
Gostei dos seus scripts cara,mais da para melhorar usando tabbles,irá diminuir muitos eles... function onUse(cid, item, frompos, item2, topos) local box = { [1] ={item = 7884,msg = "Você ganhou um Porygon."}, [2] ={item = 2129,msg = "Você ganhou um Hitmonchan."}, [3] ={item = 2130,msg = "Você ganhou um Hitmonlee."} } local level = 60 local e = box[math.random(1,3)] if getPlayerLevel(cid) >= level then doPlayerSendTextMessage(cid,22,e.msg) doPlayerAddItem(cid, e.item, 1) doRemoveItem(item.uid, 1) else doPlayerSendCancel(cid, "Você deve ter level "..level.." ou mais para abriar esta box.") end return TRUE end1 ponto -
@apocarai esqueceu dos numeros @victorx0 tenta assim local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat1, COMBAT_PARAM_AGGRESSIVE, false) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, false) local condition1 = createConditionObject(CONDITION_HASTE) setConditionParam(condition1, CONDITION_PARAM_TICKS, 220000) setConditionFormula(condition1, 700, -56000, 700, -56000) setCombatCondition(combat1, condition1) local condition2 = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition2, CONDITION_PARAM_TICKS, 10000000) setConditionParam(condition2, CONDITION_PARAM_SKILL_SHIELDPERCENT, 500) setConditionParam(condition2, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 500) setConditionParam(condition2, CONDITION_PARAM_SKILL_MELEEPERCENT, 500) setConditionParam(condition2, CONDITION_PARAM_BUFF, true) setCombatCondition(combat1, condition1) setCombatCondition(combat2, condition2) function onCastSpell(cid, var) return doCombat(cid, combat1, var), doCombat(cid, combat2, var) end1 ponto
-
Criando um Server (S/ SER UM EXPERT) Bom eu de uns tempos pra cá venho ajudando pequenos servidores (noob servers). Já ajudei cerca de 5 servers que entro gosto e acho que poderia melhorar. Eu não sou expert em programmer/scripter/”mapper”, na verdade não entendo nada de programmer seu o básico de scripter e trabalho há um ano como mapper. Mais eu não preciso de níveis altos nessas áreas pra poder fazer um server bom estável, jogavel e “diferente”. Nesses cinco servidores eu usei em todos os conteúdos que o XTIBIA e outros fórums sobre Open Tibia oferecem. Você pode sim criar um servidor diferente com conteúdos oferecidos gratuitamente e de fácil instalação. Esse tópico tem o intuito de ajudar Micro-Servers (digamos assim), a bombar seja lá um dia, semana, mês ou como outros servidores que vem de baixo crescendo a cada dia que passa. Tudo que eu sei hoje eu aprendi “sozinho” lendo conteúdos que os membros do XTIBIA oferecem e correndo atrás. Então agora vamos ver o que podemos fazer pra consegui dar o sucesso esperado a um OT. Primeiramente você deverá saber o mínimo que é colocar um otserv online. Você em um curto tempo e pequenos passos concluirá o processo para deixar um OtServ online, desde que seu computador e sua internet tenham os requerimentos que o tópico abaixo irá citar: Colocando servidor online Bom agora se você não sabia você está sabendo colocar um OT Server online, simples não?. Bom no processo você viu que precisava de um servidor. Mais pra isso você precisá pensar ae qual seu estilo, que tipo de OtServ você gosta. War/Exp Alta/Exp Baixa/ Exp Razoável... Bom vendo isso eu posso lhe ajudar citando os servidores que você pode usar segundo o seu estilo. Server War.: Mix War Descrição: Um servidor diferente onde você não vai precisar fazer muitas alterações, servidor longe do status [Monótono]. Server HighExp: Styller Yourots Descrição: Servidor com boa estrutura, bem atualizado referente a scripts inovadores, rpg etc... Um servidor HighExp e que não é tão enjuativo. (Mais lembrando não existe server HighExp que não irá precisa resetar um dia). Server LowExp: We Do Ots Descrição: Servidor Global, no meu ponto de vista o melhor já conhecido. Oferecendo o melhor em que um servidor pode ter. Mais é importante que tenha edições se você quer um servidor diferente/inovador. Server EditableSV: Alissow OTS Descrição: É claro que eu não poderia deixar o Alissow Ots de fora dessa seleção, o servidor em que mais facilmente você irá poder editar, uma inovação em server mais sem algumas edições poderá se tornar monótono. Servers: Download de OTserv Descrição: Se você preferir você mesmo selecionar seu servidor vá na seção de downloads de OTserv. Bom agora você está pronto até agora eu não ajudei a todos certo? Fazer isso é fácil escolher um servidor existente colocar o mesmo online, mais eu prometi um servidor diferente um servidor inovador sem ser um expert. Bom então vamos agora ao índice do tópico o que vocês iram fazer pra deixar seu servidor “inovador” sem ser um expert em servidores. 1. SISTEMAS Sistemas é o essencial para dar o diferencial ao servidor, desde o sistema simples até aqueles complexos em que precisa de uma atenção maior. Mais se você não adicionar um sistema diferente ao seu servidor ele num terá motivo para ser escolhido ao invés dos outros, que é o ponto fraco dos Admins, os players sempre usaram para ganhar coisas dos ADM. Mais é importante que o player fique no seu servidor não porque você os edita não porque você faz as coisas absurdas que eles pedem e sim porque seu servidor é diferente e tem uma jogabilidade quase que única. 1.1 Vip System (LINK) Bom selecionei o Vip system mais adaptável para um servidor na minha opinião inclusive será melhor usá-lo porque o autor (Vodkart) dele é o mesmo autor das vantagens inéditas para os systems VIPS além da vantagem de conter uma área exclusiva para VIPS. Citando eles será essencial você usar essas vantagens para seus players VIPS.: Outfits VIP VIP acaba, player vai ao templo Double Exp VIP Spell com Storage VIP (Dúvida Sanada) 1.2 Fly System (LINK) Bom Esse sistema foi desenvolvido pelo maior e mais conhecido Scripter nosso incrível/mestre mock entre três fly system eu achei esse o mais adaptável para servidores primeiramente por ele evitar muitos bugs que com certeza outros scripts permitem o Mock teve todo um trabalho dentro desse script, para os usuários estarem percebendo a qualidade desse script do Mock ele foi usado em um ATS antes de ser distribuído devido à melhora que o mock fez dentro dele e agora esse que ele publicou não é mais importante para ele mais mesmo assim o script é sensacional com fáceis ajustes um ADMIN conseguirá deixar do jeito que mais adaptável ao servidor. 1.3 Reset System (LINK) Bom o system reset ainda é julgado muito, dizendo que deixa um servidor zuado. Mais é melhor script para evitar futuros resets dentro do servidor e o script que mais dá um diferencial no servidor. Esse script é de fácil instalação e grande resultado mais não se é o melhor script para usar se caso você for do tipo que não gosta ou não tem muita intimidade com edição de scripts/maps etc... 1.4 Train System (LINK FORA DO FÓRUM) Bom o train system é um simples ótimo sistema desenvolvido pelo Mock, muito legal pra dar ae um diferencial no servidor, possibilitando ao ADMIN criar um novo modo de transporte dentro do tibia ou dentro de uma mina... Isso vai da criatividade do ADMIN. Sendo bem aplicado dará um impacto no servidor em que poderá adquirir muitos players por ser um script inovador. 1.5 Tasks System (LINK) Bom pra quem não conhecem essa é uma espécie de missão para descontrair os players aonde eles pedem a missão a um npc e essa missão sempre será determinada ao matar um número especificado de monster, seja ele goblin, rat, demon, skeleton... Bom, pois será mais um desafio para os players de seu servidor e quanto mais desafios mais tempos seus players iram permanecer no servidor “sem usar o Power abuser pra se divertir”. 1.6 Forja System (LINK) Bom é o script de forja mais acessível e editável que achei aqui no fórum, o ADMIN pode fazer fáceis modificações nele em instantes. Bem legal diferente também e se o ADMIN tiver bastante criatividade ele pode usar esse sistema de várias formas. 2. MAPPING Bom muitos desconsideram o mapping, dissem não ser importante do jeito que pega o servidor usa. Mais as vezes é bom fazer pequenas mudanças. "Sei" ninguém tem paciência de Mapper ou vai ficar estudando mapping pra abrir um servidor mais é bom. E se você não tem paciência pra isso, lhe apresento a área de downloads de mapas do Xtibia (Link). 2.1 HUNTS Na você tem 2 opções. Uma que priva totalmente o RPG que é o modo do We Do/Alissow que é você ir procurar sua hunt na raça, ao contrário temos os que acham que ir atrás de Hunt é perca de tempo como o Styller Yourots onde adicionam teleports de hunts para facilitar a vida dos players. Bom independente do modo que você vai usar você precisa fazer uma hunt atraente. Uma hunt que fique harmoniosa e etc... A final é ali que o player vai passar grande parte do tempo que está online. Pra isso separei pequenos e simples tutoriais para lhe ajudar nisso.: Cave Style Calabouços Cave Entrance Formando uma Cave 2.2 CIDADES Bom a cidade também é importante pois ali o player vai nascer, viver, morrer. Ou seja, vai surgir quando morrer, vender seu lot ou encontrar alguem para comprar um item, vai guardar seus items, vai participar de wars... Entre outras coisas em que você deve prestar atenção. Então a cidade tem que ser caprichada principalmente nos pontos principais. Que são: Depot e templo, isso não quer disser que os outros locais devem ser esculaxados. E em um único tutorial você vai aprender tudo isso com um cara de qualidade "então conta pra eles como funciona Alissow". Construções no Tibia PS.: Bom o mapping em ot se resume a isso mais você pode associar a sistemas como train system que citei ser um meio de transporte entre outros detalhes que podem ser determinados por você. Agora basta determinação e paciência. 3. WEB SITE Bom, muitos ADMINS não usam Web Site por dois motivos ao meu ponto de vista, ter que converter a database para MySql e tem uma instalação tanto que complexa. Mais um Web Site é importante para o servidor, porque dentro dele você poderá anunciar noticias que com certeza serão vista pelos players os players poderão opinar no servidor através do Fórum. E o mais importante evita você ser nukado por Mage Bomb. 3.1 DOWNLOADS Bom o Xtibia oferece muitos downloads pra você conseguir um belo Web Site, você só terá o trabalho de rever o que não gosto e editar pequenas coisas. Pra isso só acessar o área de Dwonloads de Websites. Downloads de Websites 3.2 COLOCANDO ON Bom no Xtibia existe uma infinidade de tutoriais de como deichar um site on, mais o único que aprendi certin sem erros foi o do Doidin Mapper. Aonde ele ensina passo a passo sem erros, então "explica ar Doidin. Criando Site MySql PS.: Um Web Site já vem com aplicativos básicos para deixar ele disponível aos players, mais você pode incrementar ele com tutoriais que o Xtibia fornece a todos. Tutoriais Websites 4. DICAS Bom a dica que tenho pra você é explorar o mundo dos OTservers Existe muitos fórums referentes ao mundo Open Tibia é explorando esses fórums você consegue muita coisa. Vale lembrar que todos começaram como vocês sem saber nada mais procurando se dedicando aprenderam e hoje são. Grandes Mappers, Scripters, Programadores etc... O que vai somar seus pontos é sua dedicação e isso nem um tutorial pode te dar isso só vai depender de você então se você quer ter um "grande" servidor lute vai atrás corre forme equipe. Que você vai longe. Explore o Mundo Xtibia porque lhe oferecerá muita coisa: Tutoriais, scripts/websites/programação/mapping/servidores em geral; Projetos, gestão/formação/desenvolvimento; Servidores, ferramentas/data packs/distribuições/SVN. Corre vai atrás e conquiste o que você quer. Créditos: Bom então é isso esse é o meu primeiro tutorial, não relacionado a Mapping. E espero que gostem usufruem dele do melhor modo. Ele só não está direcionado para ADMINS que querem um sucesso de servidor usei também para os usuários rodarem os quatros quantos do Xtibia. E espero que isso também envolvam vocês dentro do Xtibia. Então se gosto REP+ se não gosto REP-. O importante é estarem comentando para melhoras.1 ponto
-
Real Global Map 2.2 By Doohz Rush Atualizado 07/11.
doohrush reagiu a Natanael Beckman por um tópico no fórum
@Doohz Rush Seus trabalhos são muito bons cara, você tem talento... Mais não é bom você está usando o trabalho dos outros sem reconhecer o trabalho do mesmo, então cara pros seus trabalhos ficarem mais bonitos e bem visto reconheça a parte do outro e faça a sua parte, que sua parte você faz bem. Parabéns otimo OTserv. Continue assim sucesso.1 ponto -
Rpg Makers
Henrique Moura reagiu a Lopoi2 por um tópico no fórum
Vlw aí pelos comentários. @Xnildo Você falou a palavra meteoro, o resto eu que fiz. @Xjhoow Entre no msn pra eu te explicar melhor @Moskitinho Hum... todos dizem isso, acho melhor procurar alguem pra me ajudar. Alguem aí ta afim??? Vlw, podem comentar mais, e se gostou muito, Rep ++1 ponto -
nuss, muito muito bom msm!! vlw adorei a dica!! :button_ok: APROVADO!!1 ponto
-
:button_cancel: Reprovado-1 pontos