Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/28/11 em todas áreas
-
Pet System By:josejunior23
Matheuzinhoul e 2 outros reagiu a 582240 por um tópico no fórum
Rep + Porfavor - Sistema: Advanced Pet System With Races - Autor: josejunior23 - Servidor Testado: 8.54 ~ 8.60 - Descrição: - sempre quiz ter um pet system? mais nunca econtrou algum avançado? - com varias coisas e tals? - grande pakas e todo complicado pra configurar? - então seus problemas acabaram ou começaram, sei lá! - Como Instalar: - Apenas, cole na pasta do server, NÃO É NA PASTA DATA! - coloque o NPC (Pet Trainer) em seu mapa. - Pronto! Informações/Como Usar - Comandos - Como usar as shortkeys - Como adicionar magias IMAGENS! AJUDA? Download Creditos: Scipt= josejunior23 - 100% Post= josejunior23 - 95% 582240 - 5% - FastInfo3 pontos -
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
-
(War System)Placa Da Guild Quando Loga
Sofft e um outro reagiu a gustavoMtek por um tópico no fórum
removido2 pontos -
Xtibia Recomenda: 36º Edição!
Gabriel Couto e um outro reagiu a dwhfms por um tópico no fórum
Salve Salve Galera! Venho trazer para vocês uma edição excepcional do XTibia Recomenda! Tivemos muitos tópicos de qualidade essa semana. Parabéns a todos que se empenharam no XTibia essa semana, foram muitos! Então... Vamos ao que interessa: XTibia Recomenda Os melhores tópicos recomendados por vocês! Design: Chun-Li Boxingit'slikekickanasswithyourhands Xxxpirate [sign Gfx] Hunter [Galeria De Signs] Cmgabriel [Melhor Sign] Killzone [sign Gfx] Call Of Duty Ferlations Fire Resultado Ads #62 [sign] Guitar Tutoriais: [Vídeo] Virando Morador De [Ankrahmun] [Vídeo] Virando Morador De [Yalahar] Desertos Área De Mutateds [iniciante] Conversando Com Npcs Mapping: Colocando Mapa No Servidor Casas Em Cidades Geladas Lagos Semi-Congelados Lidandeon Área De Mutateds Desertos Artigos e Entrevistas: [Entrevista] Mystics Fear - Dread Doll [Entrevista] Karnopp De Pacera Vocações #3 Druids The Seeds Of Life Noticias Tibia: [Ticker] 1575 Contas Excluidas! Projetos: Wave Team Yurots Concursos Oficiais: Cds #1 Script Da Semana #2 O Melhor Mapa #6 Copa Xtibia Tutor Roleplaying: O Brasão - O Grito Das Mil Faces [Rp] Henrique [Vs] Moskitinho A Espada Dos Orgulhos Scripting: Stackpos Barzinho: Ékz No League Of Legends. [Atualizado] Quer que seu tópico apareça aqui? CLIQUE AQUI e saiba como! Uffa, é isso aí galera, até a semana que vem! :smile_positivo: This post has been promoted to an article2 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
-
Vip System by Account 1.0 By Kydrai Este é um vip system por account, ou seja, um sistema de vip válido para todos os characters de uma determinada conta. O script foi testado no TFS 0.3.6 - 8.54. E no site Gesior 0.3.4 beta4. Em caso de erros ou dúvidas é só postar. Funções do Script Função necessária para começar a usar o script: installVip() -> Cria a coluna no banco de dados para usar o sistema de vip (testei somente em sqlite, mas acredito que funcione em mysql) Funções que utilizam o account id: doTeleportPlayersByAccount(acc, topos) -> Teleporta todos os players da account getVipTimeByAccount(acc) -> Pega o tempo de vip setVipTimeByAccount(acc, time) -> Edita o tempo de vip getVipDaysByAccount(acc) -> Pega o tempo de vip em dias isVipAccount(acc) -> Verifica se é vip addVipDaysByAccount(acc, days) -> Adiciona dias de vip doRemoveVipDaysByAccount(acc, days) -> Remove dias de vip getVipDateByAccount(acc) -> Pega a data e hora que irá terminar a vip Funções que utilizam o creature id (cid): doTeleportPlayers(cid, topos) -> Teleporta todos os players da account getVipTime(cid) -> Pega o tempo de vip setVipTime(cid, time) -> Edita o tempo de vip getVipDays(cid) -> Pega o tempo de vip em dias isVip(cid) -> Verifica se é vip addVipDays(cid, days) -> Adiciona dias de vip doRemoveVipDays(cid, days) -> Remove dias de vip getVipDate(cid) -> Pega a data e hora que irá terminar a vip Inserindo as funções Abra a pasta data/lib, crie um arquivo lua e coloque: vipAccount.lua --[[ Name: Vip System by Account Version: 1.0 Author: Kydrai Forum: http://www.xtibia.com/forum/topic/136543-vip-system-by-account-v10/ [Functions] -- Install installVip() -- By Account doTeleportPlayersByAccount(acc, topos) getVipTimeByAccount(acc) setVipTimeByAccount(acc, time) getVipDaysByAccount(acc) isVipAccount(acc) addVipDaysByAccount(acc, days) doRemoveVipDaysByAccount(acc, days) getVipDateByAccount(acc) -- By Player doTeleportPlayers(cid, topos) getVipTime(cid) setVipTime(cid, time) getVipDays(cid) isVip(cid) addVipDays(cid, days) doRemoveVipDays(cid, days) getVipDate(cid) ]]-- -- Install function installVip() if db.executeQuery("ALTER TABLE `accounts` ADD viptime INT(15) NOT NULL DEFAULT 0;") then print("[Vip System] Vip System instalado com sucesso!") return TRUE end print("[Vip System] Não foi possível instalar o Vip System!") return FALSE end -- By Account function doTeleportPlayersByAccount(acc, topos) if db.executeQuery("UPDATE `players` SET `posx` = "..topos.x..", `posy` = "..topos.y..", `posz` = "..topos.z.." WHERE `account_id` = "..acc..";") then return TRUE end return FALSE end function getVipTimeByAccount(acc) local vip = db.getResult("SELECT `viptime` FROM `accounts` WHERE `id` = "..acc..";") if vip:getID() == -1 then print("[Vip System] Account not found!") return FALSE end return vip:getDataInt("viptime") end function setVipTimeByAccount(acc, time) if db.executeQuery("UPDATE `accounts` SET `viptime` = "..time.." WHERE `id` = "..acc..";") then return TRUE end return FALSE end function getVipDaysByAccount(acc) local vipTime = getVipTimeByAccount(acc) local timeNow = os.time() local days = math.ceil((vipTime - timeNow)/(24 * 60 * 60)) return days <= 0 and 0 or days end function isVipAccount(acc) return getVipDaysByAccount(acc) > 0 and TRUE or FALSE end function addVipDaysByAccount(acc, days) if days > 0 then local daysValue = days * 24 * 60 * 60 local vipTime = getVipTimeByAccount(acc) local timeNow = os.time() local time = getVipDaysByAccount(acc) == 0 and (timeNow + daysValue) or (vipTime + daysValue) setVipTimeByAccount(acc, time) return TRUE end return FALSE end function doRemoveVipDaysByAccount(acc, days) if days > 0 then local daysValue = days * 24 * 60 * 60 local vipTime = getVipTimeByAccount(acc) local time = vipTime - daysValue setVipTimeByAccount(acc, (time <= 0 and 1 or time)) return TRUE end return FALSE end function getVipDateByAccount(acc) if isVipAccount(acc) then local vipTime = getVipTimeByAccount(acc) return os.date("%d/%m/%y %X", vipTime) end return FALSE end -- By Player function doTeleportPlayers(cid, topos) doTeleportPlayersByAccount(getPlayerAccountId(cid), topos) end function getVipTime(cid) return getVipTimeByAccount(getPlayerAccountId(cid)) end function setVipTime(cid, time) return setVipTimeByAccount(getPlayerAccountId(cid), time) end function getVipDays(cid) return getVipDaysByAccount(getPlayerAccountId(cid)) end function isVip(cid) return isVipAccount(getPlayerAccountId(cid)) end function addVipDays(cid, days) return addVipDaysByAccount(getPlayerAccountId(cid), days) end function doRemoveVipDays(cid, days) return doRemoveVipDaysByAccount(getPlayerAccountId(cid), days) end function getVipDate(cid) return getVipDateByAccount(getPlayerAccountId(cid)) end Exemplos de uso Talkaction GOD: /installvip /addvip name, days /removevip name, days /checkvip name Player: /buyvip /vipdays talkactions.xml: <talkaction log="yes" access="5" words="/installvip;/addvip;/removevip;/checkvip" event="script" value="vipaccgod.lua"/> <talkaction words="/buyvip;/vipdays" event="script" value="vipaccplayer.lua"/> vipaccgod.lua: function onSay(cid, words, param, channel) local t = param:explode(",") local name, days = t[1], tonumber(t[2]) if words == "/installvip" then if installVip() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vip System instalado com sucesso!") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não foi possível instalar o Vip System!") end elseif words == "/addvip" then if name then if days then local acc = getAccountIdByName(name) if acc ~= 0 then addVipDaysByAccount(acc, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip ao "..name..", agora ele possui "..getVipDaysByAccount(acc).." dia(s) de vip.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player não existe.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode adicionar essa quantidade de dia(s) de vip.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode adicionar dia(s) de vip a este player.") end elseif words == "/removevip" then if name then if days then local acc = getAccountIdByName(name) if acc ~= 0 then doRemoveVipDaysByAccount(acc, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você retirou "..days.." dia(s) de vip do "..name..", agora ele possui "..getVipDaysByAccount(acc).." dia(s) de vip.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player não existe.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode retirar essa quantidade de dia(s) de vip.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode retirar dia(s) de vip a este player.") end elseif words == "/checkvip" then if name then local acc = getAccountIdByName(name) if acc ~= 0 then local duration = getVipDateByAccount(acc) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O "..name.." possui "..getVipDaysByAccount(acc).." dias de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player não existe.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode visualizar os dias de vip a este player.") end end return TRUE end vipaccplayer.lua: function onSay(cid, words, param, channel) if words == "/buyvip" then local price = 1000000 local days = 30 if doPlayerRemoveMoney(cid, price) then addVipDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip, agora você possui "..getVipDays(cid).." dia(s) de vip.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..price.." para adicionar "..days.." dia(s) de vip.") end elseif words == "/vipdays" then local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end Movement (Tile) Coloque actionid 15000 em um tile onde somente os vips poderão passar. movements.xml: <movevent type="StepIn" actionid="15000" event="script" value="viptile.lua"/> viptile.lua: function onStepIn(cid, item, position, fromPosition) if isVip(cid) == FALSE then doTeleportThing(cid, fromPosition, false) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente players vip podem passar.") end return TRUE end Creaturescript (Login) Quando player logar irá verificar se a vip do player acabou, se sim então irá teleportar todos os players da account para o templo, se não irá mostrar o tempo da vip. creaturescripts.xml: <event type="login" name="viplogin" script="viplogin.lua"/> viplogin.lua: function onLogin(cid) local vip = isVip(cid) if getVipTime(cid) > 0 and vip == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") elseif vip == TRUE then local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end Action (Door) Coloque actionid 15001 na door onde somente os vips poderão passar. Use a porta gate of expertise (id: 1227) actions.xml: <action actionid="15001" script="vipdoor.lua"/> vipdoor.lua: function onUse(cid, item, fromPosition, itemEx, toPosition) if isVip(cid) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players vip podem passar.") elseif item.itemid == 1227 then doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, toPosition) end return TRUE end NPC (Vendedor de VIP) vipnpc.xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="Vendedor de VIP" script="vipnpc.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, I sell {vip} days."/> </parameters> </npc> vipnpc.lua: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function buyVip(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if doPlayerRemoveMoney(cid, parameters.price) then addVipDays(cid, parameters.days) npcHandler:say('Thanks, you buy '..parameters.days..' vip days. You have '..getVipDays(cid)..' vip days.', cid) else npcHandler:say('Sorry, you don\'t have enough money.', cid) end npcHandler:resetNpc() return true end local node1 = keywordHandler:addKeyword({'vip'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want buy 30 vip days for 1000000 gp\'s?'}) node1:addChildKeyword({'yes'}, buyVip, {price = 1000000, days = 30}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) npcHandler:addModule(FocusModule:new()) Erros e Soluções Configurando o Gesior Com essa configuração irá aparecer o vip status do player no site e será possível vender vip pelo site. Se eu esqueci de alguma coisa é só avisar. accountmanagement.php Depois de: if(!$account_logged->isPremium()) $account_status = '<b><font color="red">Free Account</font></b>'; else $account_status = '<b><font color="green">Premium Account, '.$account_logged->getPremDays().' days left</font></b>'; Adicione: if(!$account_logged->isVip()) $account_vip_status = '<b><font color="red">Not Vip Account</font></b>'; else $account_vip_status = '<b><font color="green">Vip Account, '.$account_logged->getVipDays().' days left</font></b>'; Depois de: <td class="LabelV" >Account Status:</td><td>'.$account_status.'</td></tr><tr style="background-color:'.$config['site']['darkborder'].';" > Adicione: <td class="LabelV" >Account Vip Status:</td><td>'.$account_vip_status.'</td></tr><tr style="background-color:'.$config['site']['darkborder'].';" > pot/OTS_Account.php Substitua: private $data = array('email' => '', 'blocked' => false, 'rlname' => '','location' => '','page_access' => 0,'lastday' => 0,'premdays' => 0, 'created' => 0); Por: private $data = array('email' => '', 'blocked' => false, 'rlname' => '','location' => '','page_access' => 0,'lastday' => 0,'premdays' => 0, 'created' => 0, 'viptime' => 0); Substitua: $this->data = $this->db->query('SELECT ' . $this->db->fieldName('id') . ', ' . $this->db->fieldName('name') . ', ' . $this->db->fieldName('password') . ', ' . $this->db->fieldName('email') . ', ' . $this->db->fieldName('blocked') . ', ' . $this->db->fieldName('rlname') . ', ' . $this->db->fieldName('location') . ', ' . $this->db->fieldName('page_access') . ', ' . $this->db->fieldName('premdays') . ', ' . $this->db->fieldName('lastday') . ', ' . $this->db->fieldName('created') . ' FROM ' . $this->db->tableName('accounts') . ' WHERE ' . $this->db->fieldName('id') . ' = ' . (int) $id)->fetch(); Por: $this->data = $this->db->query('SELECT ' . $this->db->fieldName('id') . ', ' . $this->db->fieldName('name') . ', ' . $this->db->fieldName('password') . ', ' . $this->db->fieldName('email') . ', ' . $this->db->fieldName('blocked') . ', ' . $this->db->fieldName('rlname') . ', ' . $this->db->fieldName('location') . ', ' . $this->db->fieldName('page_access') . ', ' . $this->db->fieldName('premdays') . ', ' . $this->db->fieldName('viptime') . ', ' . $this->db->fieldName('lastday') . ', ' . $this->db->fieldName('created') . ' FROM ' . $this->db->tableName('accounts') . ' WHERE ' . $this->db->fieldName('id') . ' = ' . (int) $id)->fetch(); Substitua: $this->db->query('UPDATE ' . $this->db->tableName('accounts') . ' SET ' . $this->db->fieldName('password') . ' = ' . $this->db->quote($this->data['password']) . ', ' . $this->db->fieldName('email') . ' = ' . $this->db->quote($this->data['email']) . ', ' . $this->db->fieldName('blocked') . ' = ' . (int) $this->data['blocked'] . ', ' . $this->db->fieldName('rlname') . ' = ' . $this->db->quote($this->data['rlname']) . ', ' . $this->db->fieldName('location') . ' = ' . $this->db->quote($this->data['location']) . ', ' . $this->db->fieldName('page_access') . ' = ' . (int) $this->data['page_access'] . ', ' . $this->db->fieldName('premdays') . ' = ' . (int) $this->data['premdays'] . ', ' . $this->db->fieldName('lastday') . ' = ' . (int) $this->data['lastday'] . ' WHERE ' . $this->db->fieldName('id') . ' = ' . $this->data['id']); Por: $this->db->query('UPDATE ' . $this->db->tableName('accounts') . ' SET ' . $this->db->fieldName('password') . ' = ' . $this->db->quote($this->data['password']) . ', ' . $this->db->fieldName('email') . ' = ' . $this->db->quote($this->data['email']) . ', ' . $this->db->fieldName('blocked') . ' = ' . (int) $this->data['blocked'] . ', ' . $this->db->fieldName('rlname') . ' = ' . $this->db->quote($this->data['rlname']) . ', ' . $this->db->fieldName('location') . ' = ' . $this->db->quote($this->data['location']) . ', ' . $this->db->fieldName('page_access') . ' = ' . (int) $this->data['page_access'] . ', ' . $this->db->fieldName('premdays') . ' = ' . (int) $this->data['premdays'] . ', ' . $this->db->fieldName('viptime') . ' = ' . (int) $this->data['viptime'] . ', ' . $this->db->fieldName('lastday') . ' = ' . (int) $this->data['lastday'] . ' WHERE ' . $this->db->fieldName('id') . ' = ' . $this->data['id']); Depois de: public function getPremDays() { if( !isset($this->data['premdays']) || !isset($this->data['lastday']) ) { throw new E_OTS_NotLoaded(); } return $this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])); } Adicione: public function getVipDays() { if( !isset($this->data['viptime']) || !isset($this->data['lastday']) ) { throw new E_OTS_NotLoaded(); } return ceil(($this->data['viptime'] - time()) / (24*60*60)); } Depois de: public function isPremium() { return ($this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])) > 0); } Adicione: public function isVip() { return ceil(($this->data['viptime'] - time()) / (24*60*60)) > 0; } characters.php Substitua: if($config['site']['show_vip_status']) { $id = $player->getCustomField("id"); if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=10%>Vip Status:</TD>'; $vip = $SQL->query('SELECT * FROM player_storage WHERE player_id = '.$id.' AND `key` = '.$config['site']['show_vip_storage'].';')->fetch(); if($vip == false) { $main_content .= '<TD><span class="red"><B>NOT VIP</B></TD></TR>'; } else { $main_content .= '<TD><span class="green"><B>VIP</B></TD></TR>'; } $comment = $player->getComment(); $newlines = array("\r\n", "\n", "\r"); $comment_with_lines = str_replace($newlines, '<br />', $comment, $count); if($count < 50) $comment = $comment_with_lines; if(!empty($comment)) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD VALIGN=top>Comment:</TD><TD>'.$comment.'</TD></TR>'; } } Por: if($config['site']['show_vip_status']) { $id = $player->getCustomField("id"); if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=10%>Account Vip Status:</TD>'; if(!$account->isVip()) { $main_content .= '<TD><span class="red"><B>NOT VIP</B></TD></TR>'; } else { $main_content .= '<TD><span class="green"><B>VIP</B></TD></TR>'; } $comment = $player->getComment(); $newlines = array("\r\n", "\n", "\r"); $comment_with_lines = str_replace($newlines, '<br />', $comment, $count); if($count < 50) $comment = $comment_with_lines; if(!empty($comment)) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD VALIGN=top>Comment:</TD><TD>'.$comment.'</TD></TR>'; } } shopsystem.php (+Créditos ao GM Bekman) Substitua: if($buy_offer['type'] == 'pacc') { $player_premdays = $buy_player_account->getCustomField('premdays'); $player_lastlogin = $buy_player_account->getCustomField('lastday'); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');'; $SQL->query($save_transaction); $buy_player_account->setCustomField('premdays', $player_premdays+$buy_offer['days']); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; if($player_premdays == 0) { $buy_player_account->setCustomField('lastday', time()); } $main_content .= '<h2>PACC added!</h2><b>'.$buy_offer['days'].' days</b> of Premium Account added to account of player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a>'; } Por: if($buy_offer['type'] == 'pacc') { $player_viptime = $buy_player_account->getCustomField('viptime'); $player_lastlogin = $buy_player_account->getCustomField('lastday'); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');'; $SQL->query($save_transaction); if($player_viptime > 0) $buy_player_account->setCustomField('viptime', $player_viptime + ($buy_offer['days'] * 24 * 60 * 60)); else $buy_player_account->setCustomField('viptime', time() + ($buy_offer['days'] * 24 * 60 * 60)); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; if($player_viptime == 0) { $buy_player_account->setCustomField('lastday', time()); } $main_content .= '<h2>VIP Days added!</h2><b>'.$buy_offer['days'].' days</b> of Vip Account added to account of player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a>'; } Links Úteis 01- [Gesior Acc] Vendedo Vip Pelo Pacc Créditos: GM Bekman 02- Double Exp Para Vip Créditos: Vodkart 03- Outfits Só Para Jogadores Vips Créditos: Vodkart1 ponto
-
Bom Galera , este é meu primeiro tutorial sobre websites. Só vai funcionar com database phpmyadmin Que pode ser muito útil para aqueles que gostam de resetar mas nao quer devolver items. =D Vamos lá. 1) Acesse seu localhost/phpmyadmin 2) Vá na sua database e depois em SQL 3) Vai aparecer "Faser consulta no banco de dados" 4) Nele voce escreve os codigos correspondentes á açao que voce quer faser. -AS açoes vou listar elas abaixo Para resetar os lvl e a life: UPDATE `players` SET `level` = '8', `health` = '180', `healthmax` = '180', `experience` = '4200', `mana` = '35', `manamax` = '35', `cap` = '400' Para resetar os skills: UPDATE `ot`.`players_skills` SET `value` = '10' Remover Premium Dos players: (serve para vip system que vende premmy no gesior) UPDATE account SET premdays=0; Adicionar 3 dias de Premium: UPDATE accounts SET premdays = premdays + 3; Mandar Geral po templo: UPDATE players SET posx = X, posy = Y, posz = Z; Criar Account Manager: INSERT INTO `players` VALUES (1, 'Account Manager', 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 10, 10, 10, 0, 0); Remover Red skulls , Black Skuls e Frags de todos: UPDATE `players` SET `redskulltime`=0; Dar bless para todos: UPDATE `players` SET `blessings`=31; Remover um Item especifico: (exemplo 2160= crystal coin) ótimo para casos de clonadores. DELETE FROM player_depotitems, player_items, tile_items WHERE itemtype = 2160; Deletar players lvl 50- (CUIDADO, EXECUTANDO ESSA AÇAO VOCE IRÁ DELETAR OS SAMPLES. AUMENTE O LVL DOS SAMPLES E DEPOIS VOLTE AO NOMRAL) DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60 Deletar houses de players que foram deletados: UPDATE `houses` SET `owner` = '0' WHERE `houses`.`owner` NOT IN ( SELECT `players`.`id` FROM `players` WHERE `players`.`id` = `houses`.`owner` ); Trocar Outifit de all players: UPDATE players SET lookbody =61, lookfeet =93, lookhead =127, looktype =128 Deletar players que nunca logaram: DELETE FROM `players` WHERE `lastlogin`=0; É isso galera, espero ter ajudado. fmz? Se nao for muito para vcs , dao REP + Thanks. é para o xtibia. :XTibia_smile:1 ponto
-
(Oficial) The Forgotten Server V0.2.10 - M. Spirit!
OForasteiro reagiu a luan12 por um tópico no fórum
(Oficial - SQL) The Forgotten Server v0.2.10 - M. Spirit! Esta é uma versão do The Forgotten Server atualizada para o cliente do Tibia 8.70 e Tibia 8.71, com os novos sistemas (sistema de montaria, magias, entre outros), lembrando que ainda não está totalmente completo, em breve terá mais atualizações. ( Informações ) Atualização Versão 0.2.10: Esta versão é para fixar os bugs mais críticos relatados em 0.2.9, e um número de outras questões que foram encontradas. Ele também vem com otimizações para o código de eventos globais, principalmente na prevenção de eventos globais terem impactos no desempenho do seu servidor. Este é, portanto, essencialmente uma versão para correção de bugs. Desejamos apresentar mais recursos e novos trabalhos a versão 0.3! ChangeLog: Screenshot: DLLs: (Necessário para rodar o servidor). -> http://download294.mediafire.com/72p6126345jg/2ao9klbmehkb3f8/TFS+DLLs+-+XTibia.com.7z Código Source: Subversion client: svn://svn.otland.net/public/forgottenserver/tags/0.2.10/ Browse: http://otland.net/subversion.php?svn=public&file=listing.php&repname=forgottenserver&path=/tags/0.2.10/ Download dos Distros: Download Completo (Distros + DLLs): Créditos: Desenvolvedores do TFS - (Talaturen - OTland) - - - - - - - - - - - - - - - - - - - - - - - - - É isso, té. (+REP)1 ponto -
[10.71] Otitemeditor
amauri666 reagiu a comedinhasss por um tópico no fórum
Olá, Venho aqui trazer a vocês o novo otitemeditor, Como todos sabem ele é aquele que edita os itens e atualiza de acordo com a versão... Novidades: - Suporte de 8.5 até a versão 10.71 (novo) - Suporte para 8.1 (novo) - Comparação de itens arrumada - Open Source - Suporte para windows 8.1 - Nome dos items no market - Walk Stacking button Imagens: Download: Otitemeditor para até o tibia 10.71 https://mega.co.nz/#!i5tT2Z7R!mdwsHDYpU-b6wwaTh-QZ_Dw3UwfSDp7s8gF5BpQpWLM Source Outras versões: Tutorial: 1) Descompacte o arquivo zip (por exemplo C:\Arquivos de Programas\otitemeditor) 2) Localize a pasta Tibia geralmente é C:\Arquivos de Programas\Tibia\ 3) Copie o tibia.dat e tibia.spr para C:\Arquivos de Programas\otitemeditor\data 4) Crie uma pasta com o numero da versão que você quer editar e coloque os arquivos .dat e .spr nela. Ex: 1035/comedinha.dat Se você abrir um OTB e você obterá um erro que não poderia encontrar o arquivo, isso significa que OTB foi criado com uma versão de cliente diferente. Assim, para abrir o OTB você precisa baixar a versão que está pedindo (TibiaKing Clients) e copiar o tibia.dat e tibia.spr (passo 4). Creditos: SimOne - Criador do programa Talaturen - Principal dono do projeto Comedinha (Eu) - Tópico, compilação e novidades Tryller - Lib 10.10 Outros - Contribuir com fixes de bugs e atualizações. Observação: Encontrei pessoas copiando meu otitemeditor e postando em outros fórums sem créditos, se repetir ele será deletado e o projeto será fechado. Dica: As versões do comedinha editor funcionam para as versões 8.5 até a dita nas descrições de download, recomendamos baixar a mais recente para aproveitar de todos os recursos.1 ponto -
[Gesior Acc] Sistema De Confirmação
CliffBurtton reagiu a walefxavier por um tópico no fórum
1° Vá em Htdocs e crie um arquivo chamado confirmacao.php e ponha isso: <?PHP $main_content .= ' <form name="form1" method="post" action="donate/gravar.php"> </SCRIPT> <FIELDSET id=fieldcontato><LEGEND><STRONG>Formulário</STRONG> </LEGEND> <FORM id=form1 method=post name=form1> <TABLE border=0 cellSpacing=3 cellPadding=3 width=500> <TBODY> <TR> <TD width="29%"><STRONG>Assunto</STRONG></TD> <TD width="71%"><LABEL><SELECT id=assunto name=assunto> <OPTION selected>Doação por Pagseguro (Boleto, Cartão de Credito e etc)</OPTION> <OPTION>Doação pelo Banco Real</OPTION></SELECT> </LABEL></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Nome</STRONG></TD> <TD><SPAN id=nome><LABEL><INPUT id=nome maxLength=40 size=25 name=nome> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Digite seu nome completo.</FONT></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Email da sua Account</STRONG></TD> <TD><SPAN id=email><LABEL><INPUT id=email size=25 name=email> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Digite o email da sua conta.</FONT></SPAN><SPAN class=textfieldInvalidFormatMsg></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Sua Account</STRONG></TD> <TD><SPAN id=conta><LABEL><INPUT id=account maxLength=25 size=25 name=account> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Digite sua conta.</FONT></SPAN><SPAN class=textfieldInvalidFormatMsg></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Personagem</STRONG></TD> <TD><SPAN id=personagem><LABEL><INPUT id=personagem size=25 name=personagem> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Digite seu personagem.</FONT></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR></TR> <TR> <TD><STRONG>Valor da doação</STRONG></TD> <TD><SPAN id=valor><LABEL><INPUT id=valor maxLength=3 size=25 name=valor> <SPAN class=textfieldRequiredMsg><FONT size=1>Exemplo: 40</FONT></SPAN></SPAN></LABEL></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></LABEL></TR> <TR> <TD><STRONG>Data do depósito</STRONG></TD> <TD><SPAN id=data><LABEL><INPUT id=data maxLength=10 size=25 name=data> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Exemplo: 15/07/2009</FONT></SPAN><SPAN class=textfieldInvalidFormatMsg></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Hora do depósito</STRONG></TD> <TD><SPAN id=hora><LABEL><INPUT id=hora maxLength=5 size=25 name=hora> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Exemplo: 14:20</FONT></SPAN><SPAN class=textfieldInvalidFormatMsg></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Imagem do comprovante</STRONG><BR><FONT color=red>(Apenas por Deposito)</FONT></TD> <TD><LABEL><INPUT id=imagem size=25 name=imagem> <BR> <H5>Hospede a foto do seu comprovante no <A href="http://www.imageshack.us" target=_blank>ImageShack</A></H5></LABEL></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD> </TD></TR></TBODY></TABLE> <P><INPUT value=Enviar type=submit name=enviar> <INPUT value=Limpar type=reset name=limpar></P></FORM></FIELDSET><BR> <H3>Dúvidas.</H3><FONT color=red>Atenção se você fez uma doação no dia 01 se tem que confirma no maximo até dia 03( Seu comprovante vale por 48 horas ), caso contrário sua doação não é mas valida ou seja no momento que você faz uma doação se tem que confirma rapidamente! Para não ocorrer atrasos.<BR></FONT> <P><STRONG>1) Fiz meu depósito e confirmei quantos dias devo esperar antes de enviar uma nova confirmação?</STRONG><BR><STRONG>R:</STRONG> Sua doação será liberada em até 24hrs após o envio da confirmação. Se em 24 horas você ainda não recebeu sua Doação, envie uma nova confirmação.</P> <P><STRONG>2) Fiz meu depósito, como prosseguir para receber minha Doação?</STRONG><BR><STRONG>R:</STRONG> É simples basta clicar em "Confirmar Donate", prencha ele corretamente com todos os dados pedidos. Não digite nada errado, pois isso atrasará sua Doação e você terá que esperar 24h para enviar uma nova confirmação.</P> <P><STRONG>3) O que é imagem do comprovante, como consigo uma? </STRONG><BR><STRONG>R:</STRONG> Esta opção serve para agiilizar a ativação de sua Doação. Após escanear o seu comprovante ou tirar uma foto você deve hospedar no site citado e enviar o link para nós usando o campo imagem.</P><FONT color=red>OBS: Só é obrigatorio por Deposito pelo Banco Real.<BR></FONT> <script type=text/javascript> <!-- var sprytextfield1 = new Spry.Widget.ValidationTextField("nome", "none", {validateOn:["blur", "change"]}); var sprytextfield2 = new Spry.Widget.ValidationTextField("email", "email", {validateOn:["blur", "change"]}); var sprytextarea1 = new Spry.Widget.ValidationTextarea("dados", {validateOn:["blur", "change"]}); var sprytextfield3 = new Spry.Widget.ValidationTextField("conta", "integer", {validateOn:["blur", "change"]}); var sprytextfield4 = new Spry.Widget.ValidationTextField("personagem", "none", {validateOn:["blur", "change"]}); var sprytextfield5 = new Spry.Widget.ValidationTextField("data", "date", {format:"dd/mm/yyyy", validateOn:["blur"]}); var sprytextfield6 = new Spry.Widget.ValidationTextField("valor", "integer", {validateOn:["blur", "change"]}); var sprytextfield7 = new Spry.Widget.ValidationTextField("hora", "time", {validateOn:["blur", "change"]}); //--> </SCRIPT> <BR><BR></TD></TABLE> <CENTER></CENTER></TD></TABLE></DIV> '; ?> Agora vá em index.php e adicione isto: case "confirmacao"; $subtopic = "confirmacao"; $topic = "Confirmar Pontos"; include("confirmacao.php"); break; Agora vá em Htdocs/layouts/tibiacom/layout.php e adicione isto: <a href='?subtopic=confirmacao'> <div id='submenu_buypoints' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_buypoints' class='ActiveSubmenuItemIcon' style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>Confirmar Pagamento</font></div> <div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> </div> </a> Agora preste atenção : Faça download do arquivo abaixo (pasta Donate) e cole-o em Htdocs,onde fica todos os seus phps. O script está configurado para pagamento via pagseguro e BB.Mais é apenas confirmação,então não irá fazer muita diferença da onde veio o pagamento.Eu acho... Após ter feito isso clique em confirmação no seu site e faça um teste. O script contém: Nome Assunto Email Account Personagem Data do deposito Hora do * Imagem do comprovante Toda confirmação feita irá para a pasta Htdocs/donate/arquivo.txt <<<<< Não esqueça !!! Abraços !! Link do Download : Donate.rar1 ponto -
[8.54] Mapa Pokemon Betinhowz666
Daniel S reagiu a betinhowz666 por um tópico no fórum
Hello Como prometido irei disponibilizar agora o download do mapa pokemon que estive trabalhando. Coloquei as houses mais não o respaw. Apresentações ? Vamos lá para uma prévia das cidades. As hunt's vocês terão que baixar para conferir CITY 1 CITY 2 CITY 3 CITY 4 Me ajudem a atingir 200 REP +, Que farei este mapa ficar muito melhor do que está. Antes era 150 REP+, Mas por conta de alguns moderadores me tirarem REP + dizendo que eu tinha feito outra conta para me dar REP + agora será 200. Segue o download do mapa e o que precisa para que você abra-o MAPA BETINHOWZ666 SPR POR PIRADECO Créditos: PeeWee - por fazer parte do mapa Piradeco - pelas .spr e .dat betinhowz666 - por estar editando. (EU)1 ponto -
Compilar Cliente Sem .spr Com Video Aula (Atualizado)
kavedao reagiu a The Babidy por um tópico no fórum
Olá vou postar aqui como criar 1 client sem o .spr, .dat, .pic. Para fazer seu client você vai precisar: 1º Cliente (Pode ser qualquer Client Wodbo - Tibia - Naruto - Pokemon) 2º MoleBox (pode ser encontrado no baixaki) VIDEO AULA No Final Postarei os Links. Primeiramente: NÂO TEM COMO BLOQUEAR PARA NINGUEM COPIAR SUAS SPRITES! Existem Vários programas que desfazem essa Compilação. Como exemplo vou compilar o Tibia 8.60 Tutorial em Imagens! ________________________________________________________________________________________ Abra o Molebox Entre em Package Options Em seguida selecione o executável do teu Cliente No próximo passo selecione um local para salvar seu novo Cliente Em seguida marque a opção "compress" Pressione o botão "Add Files" Selecione os Arquivos mostrados na imagem Aperte OK Em seguida aperte "Pack" Aguarde até que todos os arquivos sejam Compilados _________________________________________________________________________________ Links: http://www.2shared.c..._By_Babidy.html http://www.4shared.com/rar/vO-M74MG/MoleBox_Ultra_By_Babidy.html http://www.multiupload.nl/0LE7I45F06 SENHA: babidy SCAN: https://www.virustot...sis/1355177552/ [EDIT: Atualizei os Links e coloquei a vídeo aula] Espero te Ajudado. Créditos: Babidy Skype: Babidy41 ponto -
Criando Conta God 9.10
VictorWEBMaster reagiu a paulo0102 por um tópico no fórum
Bom é meu primeiro Tutorial então dá um desconto vai kkkkkkkkkkk Então antes de mais nada estou aqui esinando a cria conta god e o char em ots 9.10, da forma Sqlite, mais pra frente eu ensino no Mysql voocês irão presisar do seguinte progama Sqlite Studio Download AQUI SCAN AQUI 1°passo: Bom primeramente crie uma conta no seu server com um char, depois abra seu Sqlite : 2°passo: Clike na opção Add Database como na imagem : 3°passo: Depois clike na pasta dá janelinha que abriu : 4°passo: Depois disso navege ate a pasta do seu otserv e ache a database dentro dá pasta do ot assim como no exemplo : 5°passo: Depois selecione a database e de abrir, depois aperte ok na Janelinha anterior assim : 6°passo: Depois voocê percebeu que abriu uma coluna chamada "forgottenserver.s3db" bom no meu caso saiu com esse nome pelo fato do nome do meu database se no seu caso estiver com outro nome, não entre em panico é normal, o nome ficara dependendo do nome do seu database: 7°passo: Bom depois disso dê um duplo clike no seu database, aquela que apareçeu lá em cima no canto e ficara assim na imagem: Agora abra o seguinte, "Tables/accounts" ai voocê vera todas as accounts como mostra na imagem abaixo, depois disso, voocê escolhera uma conta a ser a conta god isso vai ser dá sua preferençia, escolhido a conta a ser a do god, voocê tera que mudar o "Type" e "group_id" isso define, o tipo de conta, e o acesso de certos comandos do ot, que na minha opnião fico melhor esse estilo, do antigamente voocê so mudava o "acess" do player e tinha o acesso de god aah so de observação, pra vêr os os diferentes comandos disponiveis em seu ot vá na pasta "data/xml" e abra o arquivo chamado "commands.xml" lá voocê vera todas os commandos do seu otserver, e outro detalhe, o god so terá acesso a comando "x" se onde a conta do god tiver o "type" eo "group_id" que o comando exija ter o type e group_id, então prestem atenção ai galera :smile_positivo: 8°passo: Bom seguindo no nosso tutorial com a parte dos accounts aberta, e com a conta já decidida para ser a conta god primeiro dê um duplo clike no campo Type da database dá conta desejada como na imagem abaixo : 9°passo: Depois disso ponha o valor da conta god que séria "6" assim a Mesma coisa na coluna "group_id" que tem valor que é "3" assim depois de trocados os dois valores voocê tera que confirma a troca de valores apertando esse botão que confirma os valores trocados igual na imagem abaixo : Pronto depois disso voocê já tem a conta GOD ! mais doque adianta ter a conta god e não ter o char ? 10°passo: então agora agente seleciona a tabela chamada "Players" que se encontra aqui : Bom aqui voocê vera todos os Personagens de seu servidor, até ai tudo bem 11°passo: dai ai voocê seleciona o 'char' que voocê tem na conta de god que voocê quer que seja o god bom dai é simples é so voocê troca o grop_id do player para "3" como antigamente assim : Depois de ter feito isso voocê séra o God do server, ah mais não se esqueça de aperta o botão para confirmar a troca de valores se não, não ira aconteçer nada nas suas alterações. Bom Agradeço a a atenção de todos e já sabe se te Ajudei Dá um Reply + qualquer duvida galera comentem ai que eu tentarei ajudar todos no maximo de conhecimento que eu tiver bom e lembrem-se se o tutorial for aprovado eu postarei aqui como fazer esse mesmo processo no modo mysql que o melhor metodo para se trabalhar com ots Atée a proxima galera fuiiz Créditos: 100% para mim ;D1 ponto -
Como Abrir O Sql
hellcoreot reagiu a tchuca02 por um tópico no fórum
PRIMEIRAMENTE VC DEVE ABRIR A PASTA DO SVR VAI ESTAR MAIS OU MENOS ASSIM AI VC CLICA EM sqlitestudio IRA ABRIR MAIS OU MENOS ASSIM AI É SO VC CLICAR NO TERÇEIRO OS SQL ANTIGOS FICA NO PRIMEIRO QUANDO VC CLICAR IRA ABRIR AI VC CLICA NA PASTA NOS SQL ANTIGOS É A PASTA QUE TEM 1 NEGOCIO VERDE AI VC CELECIONA O ARQUIVO QUE APARECER AI CLICA OK E OK AI FICARA ASSIM NOTEM O LADO <<< APARECEU UMA LINHA DE 1 CLIQUE DUPLO NELE E ABRA O TABLES SO LA QUE DEVEMOS MEXER FICARA ASSIM AGORA IREI ENSINAR COMO EDITAR AS COISAS TIPO: MUDAR SENHAS,NOME,LVL,VOCAÇAO,NOME DAS GUILDS,SKILL,ML,DESBANIR ALGUM PLAYER,OUTFIT,HEALTH,MANA,ETC... AGORA PRIMERIO COMO EDITAR PLAYER TER ABRIDO TABLES ABRA A PARTE PLAYER FICARA ASSIM VC NAO MEXE EM NADA AI CLIQUE EM DATA FICARA ASSIM AGORA LA EM CIMA VAI TER ESCRITO NAME,WORLD ID,GROUP ID,ACCOUNT ID,LEVEL,VOCATION,HEALTH,HEALTHMAX,EXPERIENCY,LOOKBOODY,ETC... EXPLICANDO NAME:O NOME DO PLAYER WORLD ID:NAO MEXA GROUP ID:PARA DEFINAR COMO VAI SER O PLAYER:1PLAYER,2NAO SEI,3TUTOR,4GM,5CM,6GOD ACCOUNT ID:PARA ESCOLHER A CONTA QUE O PLAYER VAI FICAR,VOU EXPLICAR MELHOR DPS LEVEL:JA TA NA CARA ESCOLHER O LVL DO PLAYER VOCATION:ESCOLHER VOCAÇAO HEALTH:O TANTO DE HEALTH QUE O PLAYER TEM ATUALMENT HEALTHMAX:O TANTO DE HEALTH QUE O PLAYER TEM NO MAXIMO EXPERIENCY:É AQUELE TANTO QUE APARECE NA PARTE SKILL DO PLAYER QUANDO VC TIVER JOGANDO NAO FAZ DIFERENÇA NENHUMA ISSO LOOKBOODY:É O CORPO DO PLAYER TIPO SE COLOCA O ID DO ABOMINAVEL O PLAYER FICA COM A ROUPA DE 1 ABOMINAVEL E O RESTO JA É FACIL AGORA VO ENCINAR COMO EDITAR ACC VOLTANDO A AGORA CLIQUE EM accounts E VA EM DATA COMO EM PLAYER IRA FICAR ASSIM MOSTRANDO A ACCOUNT,PASSWORD,DIAS DE PREMIUM,ULTIMA VEZ QUE LOGOU,WARINGS,GROUP ID,DIAS DE VIP EXPLICANDO ACCOUNT E PASSWORD:É A SENHA DE CIMA E DE BAIXO VC PODE COLOCAR ATÉ 1 NUMERO SO DIAS DE PREMIUM:JA DIZ TUDO ULTIMA VEZ QUE LOGOU:TBM WARINGS:TIPO O GOD VAI TE BANIR ELE INVEZ DE BANIR DIRETO TE DA 1 WARING PRO PLAYER NAO FAZER MAIS A COISA ERRADA QUANDO CHEGAR AO 7 O PLAYER É ALTOMATICAMENTE BANIDO GROUP IP:TIPO É A ACCOUNT DO GOD,O CHAR FICA MEIO BUGADO ELE NAO PODE PEGAR PK,SO QUE ELE PODE DESLOGAR MESMO COM BATLE DIAS DE VIP:JA DIZ TUDO AGORA COMO COLOCAR SKILL OBS:SEMPRE NA HORA QUE VC ABRIR UMA DAQUELAS ABAS É PRA IR EM DATA NAO VOU MAIS AVISAR ABRA A PARTE PLAYER_SKILLS FICARA ASSIM DPS QUE VC ABRIR DATA EXPLICANDO ESSAS 7 LINHAS SAO OS SKILLS 1:FIRST 2:CLUB 3:SWORD 4:AXE 5:DISTANCE 6:SHIELDING 7:FISHING COMO NA IMAGEM PRONTO AGORA SO FALTA COMO DESBANIR E COMO APAGAR GUILD OU MUDAR O NOME DA GUILD AGORA ABRA A PARTE GUILD PARA VC DELETAR A GUILD VC PRECISA SELECIONALA E CLICAR NO MENOS E CLICAR NO :button_ok: E PARA VC MUDAR O NOME É QUENEM MUDAR O NOME DE 1 PLAYER E PARA TIRAR O BAN SO VC FAZER QUENEM APAGANDO UMA GUILD VC SELECIONA E APAGA E :button_ok: FIM LEMBRETE SEMPRE QUE VC MODIFICAR ALGO DO PLAYER OU SKILL O CHAR TEM QUE ESTAR OFF SENAO NAO DA CERTO E SEMPRE CLICAR EM :button_ok: DEPOIS DE TER MODIFICADO ALGUMA COISA QUE É PRA SALVE PRONTO EDIT< Download SQL1 ponto -
Distro usado: The Forgotten Server 0.2.11 (Mystic Spirit) (9.10) (Créditos: Talaturen Kornholijo Elf Fallen Desenvolvedores OpenTibia (acidgame, jiddo, mips_act, nfries88, otserv_simone, primer13r, remere, shivoc, smygflik, snack, tliffrag e wrzasq)). Baiak Server 1.0 by History: Baiak Server 2.0 by History: Baiak Server 2.2 by History: Download pelo MegaUpload Scan VirusTotal Para editar o mapa use o RME 8.6: http://www.xtibia.com/forum/topic/84112-86x-remeres-map-editor/ Não consegue usar os comandos de GOD? Leia esse tutorial: http://www.xtibia.com/forum/topic/162851-criando-conta-god-910/ Próxima edição (Baiak Server 9.10): Imagens: Características do Distro 2.2: Os bugs das Houses são do próprio The Baiak Server! Créditos: GOD Bon Vilden Baiak Lula Felipete Docao TFS Team Tryller The Crystal Server Team Admrevolution brenomadlan History _____ Links úteis: - Para editar esse mapa use o RME 8.6: http://www.xtibia.com/forum/topic/84112-86x-remeres-map-editor/ - Para se conectar ao servidor 9.10 use o SharpLoader: http://www.xtibia.com/forum/topic/163471-sharp-loader-ip-changer-todas-as-versoes/ - Não consegue usar os comandos de GOD? Leia esse tutorial: http://www.xtibia.com/forum/topic/162851-criando-conta-god-910/ Ajudei? Me dá REP+1 ponto
-
[Pokemon] Power Plant
xiahoudunbr reagiu a Stigal por um tópico no fórum
Ola XTibia, Venho Trazer Minha Power Plant Completa! Contem: 8 Andares Cheio De Pokemons Eletricos 2 Power Plants Praticamente Quase Juntas! Respown De "SHINY ELECTABUZZ" No Ultimo Andar! - Imagens: 1° Andar: http://imageshack.us/f/43/andar1.png/ - 2° Andar: http://imageshack.us/f/836/andar2.png/ - 3° Andar: http://imageshack.us/f/52/andar3.png/ - 4° Andar: http://imageshack.us/f/685/andar4.png/ - 5° Andar: http://imageshack.us/f/848/andar5.png/ - 6° Andar http://imageshack.us/f/194/andar6.png/ - 7° Andar http://imageshack.us/f/88/andar7.png/ - Ultimo Andar: http://imageshack.us...ltimoandar.png/ - Download: - Scan: [VirusTotal] [PowerPlant] Stigal - Creditos: Stigal1 ponto -
Monster Com Skull Randomicas
Bruna1307 reagiu a eduardo190696 por um tópico no fórum
Descrição: Nome : Monster Skull randomicas Versão : 8.54 Bom abra as SOUCER e vai em: luascript.cpp e procure: int32_t LuaScriptInterface::luaGetPlayersOnline(lua_State* L) { //getPlayersOnline() ScriptEnviroment* env = getEnv(); AutoList<Player>::iterator it = Player::autoList.begin(); lua_newtable(L); for(int32_t i = 1; it != Player::autoList.end(); ++it, ++i) { lua_pushnumber(L, i); lua_pushnumber(L, env->addThing(it->second)); pushTable(L); } return 1; } Embaixo disso Adicione isso : int32_t LuaScriptInterface::luaCheckSpawnMonster(lua_State* L) { ScriptEnviroment* env = getEnv(); AutoList<Monster>::iterator it = Monster::autoList.begin(); lua_newtable(L); for(int32_t i = 1; it != Monster::autoList.end(); ++it, ++i) { lua_pushnumber(L, i); lua_pushnumber(L, env->addThing(it->second)); pushTable(L); } return 1; } Agora Procure essas linhas //getPlayersOnline() lua_register(m_luaState, "getPlayersOnline", LuaScriptInterface::luaGetPlayersOnline); E Adicione isso Abaixo delas //checkSpawnMonster() lua_register(m_luaState, "checkSpawnMonster", LuaScriptInterface::luaCheckSpawnMonster); AGORA EM LUASCRIPT.H PROCURE ESSA LINHA: static int32_t luaGetPlayersOnline(lua_State* L); E bote isso embaixo dela: static int32_t luaCheckSpawnMonster(lua_State* L); Acabou o Sistema, Agora a 2 jeitos de você usar esse script 1° Talkactions ( quando você falar o comando ele vai dar um skull randomica para cada monster, mais caso ele morra quando voltar vai vir sem skull ) Data/Talkactions/Scripts function onSay(cid, words, param, channel) local m = checkSpawnMonster for _, mid in ipairs(m) do local mpos = getThingPos(mid) doCreatureSetSkullType(mid, math.random(1, 5)) end return 0 end Agora crie uma tag e use o sistema. 2° jeito, Globalevents ( Agora a cada respow ele ja vem com skull, + demora cerca de 1 milezimo de segundo pra adicionar a skull. Data/globalevents/scripts function onThink(interval, lastExecution, thinkInterval) local m = checkSpawnMonster() local sex = {1, 2} -- numero da skull ou seja, desenho do sexo for _, mid in ipairs(m) do local mpos = getThingPos(mid) if (getCreatureSkullType(mid) == 1) or (getCreatureSkullType(mid) == 2) then else doCreatureSetSkullType(mid, math.random(1, #sex)) end end return 0 end Data/Globalevents/Globalevents.xml <globalevent name="sex" interval="0" event="script" value="sex.lua"/> Bom galerinha esse script um amigo fez pra mim e se eu não tivese postado só eu teria, não sei se é o lugar certo mais se não for por favor mova o tópico. Se for usar de ++rep ESTE SCRIPT ESTA PROIBIDO DE SER POSTADO EM OUTROS FÓRUM !!!!!1 ponto -
Você está lah Jogando, quando der repente aparece um Shiny Pokemon e você não tem uma Pokebola e agora? Você já deve ter visto diversas cenas desse tipo vou ensinar de um jeito fácil e pratico Como a pessoa comprar esse iten apenas falando !buyitennomedoiten. Enfim vamos ao Tutorial: Editando o Script: 1- Crie Um Arquivo.Lua Em "Pasta Do Seu Servidor\data\talkactions\scripts" Com o Nome De "buyitem" Dentro Do Arquivo "BuyItem" Adicione: 2- Va No TalkAction.Xml e Adicione: Creditos: 99% -PokeTibia Tutoriais 01% - Stigal1 ponto
-
[Tutorial] Criando Otserver (Detalhado)
cazetta reagiu a leoviana73 por um tópico no fórum
Eai galera. Está com dúvidas de como criar um ot server ? Seus problemas acabaram ! Hoje eu vim trazer a vocês a melhor maneira de se criar um servidor, espero que ajude . vamos láah. Antes de tudo va até o menu iniciar, clique em painel de controle, firewall do windows e depois clique em exceções. Depois de ter clicado em exceções, clique em adicionar porta. Nome : Open Tibia Server Numero da Porta : 7171 TCP click em ok, depois feche. vamos agora ao ip. para o seu ot server não ficar com aqueles ip's de numeros chatos, vamos simplificar a coisa :biggrin: entre no site : www.no-ip.com e se registre. após o registro entre na sua account e vá em Rosts/Redirects, depois em Add a Host. depois de clicar em add a host você procura na tela a barrinha Hostname, láh voce vai por o nome do seu server, por exemplo: xtibiaserver, e na barra ao lado aonde vai estar zapto.org, você pode mudar para qualquer um, eu recomendo servegame.com ou no-ip.biz , você é quem sabee. deepois disso nao mexa em mais nada vá apenas em Create Host no fim da pagina. proontinho, você jáa tem seu ip agora falta o manager dele (extremamente necessário). deslogue sua account e vá em Download, selecione a "marca" do seu pc e baixe. instale tudo certinho... e depois abra ele. vai pedir uma acc, coloque a acc do no-ip e a senha. no programinha que ficou na sua task bar, xD , vá em Select Hosts e clique na caixinha do ip que voce criou, e depois de save. (NAO SE ESQUECA, SEMPRE QUE FOR ABRIR O SERVIDOR ABRA O NO IP DUC). pronto, agora com seu ip certinho só falta o server agora vamos ao próximo passo ! o download do servidor. vá na sessão de downloads do xtibia e baixe o server desejado. pode ser qualquer versão é tudo a mesma coisa :smile_positivo: após ter baixado o servidor abra a pasta dele e vá no arquivo config (ou configuração lua). vá na aba connection config e ache ip. vai estar mais ou menos assim : -- Connection config worldId = 0 (não mexa) ip = "127.0.0.1" (aqui você coloca o ip que nós criamos no site da no-ip, e nao exclua as aspas.) faciim essa parte ;d , agora feche e salve. após ter feito isso tudo, chegamos ao fim do tutorial clique no executavel do ot (forgotten server exe, etc.) espere carregar, quando aparecer running, ou forgotten server online, basta abrir o client da mesma versão do server que vc criou, abir o multi ip changer, clocar seu server e dar change ip. divirta-se !1 ponto -
Uma spell bem simples, + pra quem n sabe como fazer oque fiz abaixo, ja fica como um tutorial. Spells/Script crie 1 arquivo LUA chamado Elementsforce e adicione isso dentro: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8.335, 0, 8.58, 0) local Holyarea = createCombatArea{ {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local effect1 = createCombatArea{ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, } local effect2 = createCombatArea{ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, } local effect3 = createCombatArea{ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local effect4 = createCombatArea{ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } function onCastSpell(cid, var) local function elements1(params) doSendDistanceShoot({x=getThingPos(cid).x+3, y=getThingPos(cid).y+3, z=getThingPos(cid).z}, {x=getThingPos(cid).x+3, y=getThingPos(cid).y-3, z=getThingPos(cid).z}, CONST_ANI_ICE) doAreaCombatHealth(getThingPos(cid), COMBAT_ICEDAMAGE, getThingPos(cid), effect1, -(0), -(0), CONST_ME_ICEATTACK) mayNotMove(cid, 1) end local function elements2(params) doSendAnimatedText({x=getThingPos(cid).x+3, y=getThingPos(cid).y-3, z=getThingPos(cid).z},"ICE",TEXTCOLOR_BLUE) doSendDistanceShoot({x=getThingPos(cid).x+3, y=getThingPos(cid).y-3, z=getThingPos(cid).z}, {x=getThingPos(cid).x-3, y=getThingPos(cid).y-3, z=getThingPos(cid).z}, CONST_ANI_ENERGYBALL) doAreaCombatHealth(getThingPos(cid), COMBAT_ENERGYDAMAGE, getThingPos(cid), effect2, -(0), -(0), CONST_ME_ENERGYHIT) end local function elements3(params) doSendAnimatedText({x=getThingPos(cid).x-3, y=getThingPos(cid).y-3, z=getThingPos(cid).z},"ENERGY",TEXTCOLOR_PURPLE) doSendDistanceShoot({x=getThingPos(cid).x-3, y=getThingPos(cid).y-3, z=getThingPos(cid).z}, {x=getThingPos(cid).x-3, y=getThingPos(cid).y+3, z=getThingPos(cid).z}, CONST_ANI_FIRE) doAreaCombatHealth(getThingPos(cid), COMBAT_FIREDAMAGE, getThingPos(cid), effect3, -(0), -(0), CONST_ME_FIREATTACK) end local function elements4(params) doSendAnimatedText({x=getThingPos(cid).x-3, y=getThingPos(cid).y+3, z=getThingPos(cid).z},"FIRE",TEXTCOLOR_RED) doSendDistanceShoot({x=getThingPos(cid).x-3, y=getThingPos(cid).y+3, z=getThingPos(cid).z}, {x=getThingPos(cid).x+3, y=getThingPos(cid).y+3, z=getThingPos(cid).z}, CONST_ANI_EARTH) doAreaCombatHealth(getThingPos(cid), COMBAT_EARTHDAMAGE, getThingPos(cid), effect4, -(0), -(0), CONST_ME_SMALLPLANTS) end local function elements5(params) doSendDistanceShoot({x=getThingPos(cid).x+3, y=getThingPos(cid).y+3, z=getThingPos(cid).z}, getThingPos(cid), CONST_ANI_EARTH) doSendDistanceShoot({x=getThingPos(cid).x+3, y=getThingPos(cid).y-3, z=getThingPos(cid).z}, getThingPos(cid), CONST_ANI_ICE) doSendDistanceShoot({x=getThingPos(cid).x-3, y=getThingPos(cid).y+3, z=getThingPos(cid).z}, getThingPos(cid), CONST_ANI_FIRE) doSendDistanceShoot({x=getThingPos(cid).x-3, y=getThingPos(cid).y-3, z=getThingPos(cid).z}, getThingPos(cid), CONST_ANI_ENERGYBALL) end local function elements6(params) doAreaCombatHealth(getThingPos(cid), holy, getThingPos(cid), Holyarea, -(0), -(0), CONST_ME_HOLYAREA) doSendDistanceShoot(getThingPos(cid), {x=getThingPos(cid).x+5, y=getThingPos(cid).y, z=getThingPos(cid).z}, CONST_ANI_ICE) doSendDistanceShoot(getThingPos(cid), {x=getThingPos(cid).x-5, y=getThingPos(cid).y, z=getThingPos(cid).z}, CONST_ANI_ENERGYBALL) doSendDistanceShoot(getThingPos(cid), {x=getThingPos(cid).x, y=getThingPos(cid).y+5, z=getThingPos(cid).z}, CONST_ANI_FIRE) doSendDistanceShoot(getThingPos(cid), {x=getThingPos(cid).x, y=getThingPos(cid).y-5, z=getThingPos(cid).z}, CONST_ANI_EARTH) mayNotMove(cid, 0) end local function elements7(params) doSendAnimatedText({x=getThingPos(cid).x+3, y=getThingPos(cid).y+3, z=getThingPos(cid).z},"EARTH",TEXTCOLOR_GREEN) end addEvent(doCombat, 1600, cid, combat, var) addEvent(elements1, 000, parameters) addEvent(elements2, 300, parameters) addEvent(elements3, 600, parameters) addEvent(elements4, 900, parameters) addEvent(elements5, 1300, parameters) addEvent(elements6, 1600, parameters) addEvent(elements7, 1200, parameters) end Agora em Spells.xml adicione : <instant name="Elements Force" words="utito confuri" lvl="300" mana="120" exhaustion="2500" needlearn="0" script="Elementsforce.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> Tambem serve de exemplo para fazer spells com o DistanceShoots saindo de outros lugares. Com uma pouco de criatividade da pra fazer umas spells bem legais e fora do comum.1 ponto
-
Reputation System By Colex
leozinhoac reagiu a colex por um tópico no fórum
Reputation system, consistem em 2 runes, 1 da pontos de reputação e a otra ve quantus pontos de reputação vc ou otro cara tem Voce NAUM pode dar reputation points a si próprio Para poder dar pontos de reputação tem ke ser um certo level escolhido por voce,aconselho a escolher level alto (100 por exemplo dependendo da experiencia) assim as pessoas naum ficam fazendu chars pra darem reputação para elas. Se voce quiser tambem precisa de um certo level pra receber,aconselho aki tambem alto (100 por exemplo tbm). Uma pessoa naum poderam spammar porque ela tem ke esperar dias pra poder dar reputatio points otra vez. Aqui esta a action: 1º Parte: Rune para dar reputation points no diretório data>actions>scripts crie um ficheiro com nome de rep.lua e adicione u seguinte code: ------Reputation System by Colex------function onUse(cid, item, frompos, item2, topos)days = 10080 ---os dias são contados em segundosstorevalue = 8971 ---onde sera guardado o tempo de esperaname = getPlayerName(item2.uid)name2 = getPlayerName(cid)playername = getPlayerName(cid)lvl = getPlayerLevel(cid)lvl2 = getPlayerLevel(item2.uid)level = 50 ---level necessario para dar reputation points level2 = 100 ---level que pode receber reputation pointsrep = getPlayerStorageValue(item2.uid,8904)result = rep + 1if name2 == name thendoPlayerSendTextMessage(cid,22,"You cannot use this rune on your self.") return 0endif item2.itemid == cid then if lvl >= level then if lvl2 >= level2 then if rep > 0 then if (waiting(cid, storevalue, days) == 1) then setPlayerStorageValue(item2.uid,8904,rep+1) doPlayerSendTextMessage(cid,22,"You gave 1 reputation point to "..name..", now he/she has "..result.." points.") doPlayerSendTextMessage(item2.uid,22,"You've received 1 reputation point from "..name2..", now you have "..result.." points.") else doPlayerSendCancel(cid,"You need to wait more time before start to give more reputation points.") end else setPlayerStorageValue(item2.uid,8904,1) doPlayerSendTextMessage(cid,22,"You gave 1 reputation point to "..name..", now he/she has 1 points.") doPlayerSendTextMessage(item2.uid,22,"You've received 1 reputation point from "..name2..", now you have "..result.." points.") end else doPlayerSendCancel(cid,"The player need level "..level2.." to receive reputation points.") end else doPlayerSendCancel(cid,"You need level "..level.." to give reputation points.") endelse doPlayerSendCancel(cid,"You can not use this rune there.") endreturn 1endfunction waiting(cid, storevalue, days) newWaiting = os.time() oldWaiting = getPlayerStorageValue(cid, storevalue) if (lastwaiting == nil or lastwaiting < 0) then lastwaiting = 0 end if (days == nil or days < 0) then days = 1 end diffTime = os.difftime(newWaiting, oldWaiting) if (diffTime >= days) then setPlayerStorageValue(cid, storevalue, newWaiting) return 1 else return 0 endend 2º Script: Rune para ver os reputations points otra vez no diretório data>actions>scripts faça um ficheiro de nome rep2.lua e adicione u seguinte code: ------Reputation System by Colex------function onUse(cid, item, frompos, item2, topos)name2 = getPlayerName(cid)name = getPlayerName(item2.uid)rep = getPlayerStorageValue(item2.uid,8904)if rep > 0 thensetPlayerStorageValue(item2.uid,8904,0)return 0endif name2 == name thendoPlayerSendTextMessage(cid,22,"You have "..rep.." reputation points.") return 0endif item2.itemid == cid then doPlayerSendTextMessage(cid,22,""..name.." has "..rep.." reputation points.")else doPlayerSendCancel(cid,"You can not use this rune there.")endreturn 1end agora na pasta data>actions adicione no ficheiro actions.xml as seguintes frases: -----------Reputation System----------<action itemid="2263" script="rep.lua" allowfaruse="1" /><action itemid="2276" script="rep2.lua" allowfaruse="1" />-----------/Reputation System--------- ---------------------------------------------- espero que gostem e comentem u que axam1 ponto -
Construções No Tibia: Templos, Telhados, Casas, Detalhes, Etc.
furlanetto reagiu a Alissow por um tópico no fórum
Atenção! Este tópico contém muitas (25 imagens = 41.559.864 bits) imagens, algumas em tamanho G, então se alguma delas não carregar, atualize a pagina no seu navegador. Obrigado pela atenção. Imagem por: Kaonic [Construções] Construções no Tibia são como na vida real, não se pode viver sem elas. No inicio o jogador nasce no templo, que é talvez o lugar mais importante e visitado do servidor, todos passam por ele no começo e é onde você renasce depois de morrer, também é onde você foge daquele Power abuser fdpfdpfdpfdp. Em segundo lugar na escala de importância vem o Depot, é onde você guarda seus itens mais preciosos (se você não tiver uma casa), onde você faz aquela feirinha maneirinha pra vender seus itens. Temos também as casas, que, com camas, servem pra regeneração fácil e rápida de stamina ou soul, servem pra guardar seus itens, fazer inveja em quem você odeia, brincar de casa da Barbie, etc. Enfim, construções no Tibia são mesmo importantes. Templos: Começaremos pelo, na minha opinião, o lugar mais importante de um servidor. Como você já sabe, templos são aqueles lugares sagrados onde os players nascem e renascem. Claro que esta não é uma construção, mas templos não precisam ser necessariamente quadrados, simétricos e "sem vida". A historia do templo acima, por exemplo, diz que no passado ele era um "templo de verdade", mas devido a ataques simultâneos de bombas atômicas Magos, o templo foi destruído, e mesmo assim os habitantes não quiseram abandoná-lo, por ser um templo sagrado e possuidor de forças sobrenaturais. Templos e construções são diferentes em cada tipo de cidade, cidades desérticas tendem a ter templos com paredes no estilo "egypt wall" e "egypt Stone wall", cidades em selvas usam templos de bambu, as construções em cidades de gelo possuem paredes de madeira, e assim sucessivamente. Dica: Em cidades pequenas, templos devem ser pequenos, e em cidades grandes, templos devem ser grandes, respectivamente. Este é o templo do popular Alissow OTS, como podem ver é um templo simples e totalmente retangular, mas mesmo assim não é feio – pelo menos eu acho que não é. Vocês aprenderão mais sobre construções quadradas um pouco mais abaixo. Casas: As casas precisam ter: - Pilares, para garantir o sustento da construção, como está indicado em vermelho. Isto não é obrigatório, apenas se tiver algo "solto por ai" que necessite alguma sustentação. - Janelas nos telhados e nas paredes – indicação em verde - dão um charme a mais na sua casa, além de permitir a visualização dos players de dentro e fora da mesma. - Uma porta, logicamente, para o player entrar e sair da casa. - E por ultimo enfeite da maneira que quiser, sempre respeitando a coerência (Leia Detalhes mais abaixo). Telhados: Em sua construção você pode usar diversos tipos de telhados, em casas pequenas eu aconselho o seguinte tipo de telhado: Em construções maiores, é aconselhável usar um telhado baixo, pois o alto pode ficar alto demais, resultando num mapa feio. Também é válido utilizar pedras e plantas nos telhados. Detalhes: Detalhes em construções são uma coisa muito simples, geralmente usa-se tochas, janelas, portas, musgos, flores, plantas, etc. OBS: Tochas em paredes de madeira são prejudiciais à saúde das mesmas, por isso o ministério da saúde recomenda o uso de lâmpadas. Veja alguns exemplos de detalhes nas construções: Observe que nesta casa temos plantas nas paredes, plantas no telhado, além de musgos nas paredes e uma calha com um barril de água, muito comum em casas de toda parte do mundo. Rçrç Nesta, temos um contraste de paredes, além de musgos e chaminés nos telhados. Construções Grandes: Os castelos (eu adoro esse mapa) também fazem parte do mundo tibiano, os reinos precisam ter uma fortaleza que sirva de uma moradia digna para o seu rei e seus seguidores. Observe como as paredes foram usadas. Tamanhos. Eu vejo bastante gente fazendo casas extremamente gigantescas, quadradas ou curvas e com apenas uma porta e uma janela. A não ser que você queira criar monstros lá dentro, 13x13 SQMs já é grande o suficiente para uma casa grande e 6x7 para uma casa normal. Se você não sabe o que é SQM, preste atenção: SQM significa Square Metre, que em português, significa Metro quadrado. Passando para o Tibia, um player ocupa um SQM, assim como um Demon (ou qualquer outro monstro) também ocupa um SQM. Um pedaço de chão ou uma parede Também possuem 1 SQM. Uma casa grande no tamanho certo. Uma casa grotesca do jeito totalmente errado. Quadrado X Curvo: Quando se fala em construções quadradas a primeira coisa que vem à cabeça é que é um mapa muito simples, feio e... quadrado (what?), o que não é verdade. Construções curvas atrapalham a jogabilidade, acompanhe. Mapa 1: A primeira vista você poderá dizer que é um mapa muito simples, feio e quadrado, continue acompanhando. Mapa 2: Qual dos dois mapas é mais bonito? Qual deles suporta mais items? Com certeza é a casa quadrada certo? Por isso pense bem antes de querer fazer algo "incomum". Isso não quer dizer que deve-se fazer tudo quadrado, algumas curvinhas às vezes também deixam um mapa bonito: Aplicando a "técnica do olha e faz" também é possível fazer lindas construções e com formas diferentes. Observe: Depois: É certo que um servidor sem construções não funcionará como deveria, ele ficará totalmente incompleto, os players precisam de um lugar bonito pra renascer, precisam de um depósito seguro para guardar seus items, precisam de casas para viver e de qualquer forma essas construções precisam ser bem feitas, seja para atrair o publico ou para simplesmente mostrar seu trabalho. ______________________________________________________________________________ Considerações finais: Os mapas não ficaram muito beeem feitos, alguns deles serviram apenas de demonstração. Gostou do artigo? Deseja criticar? Elogiar? Comente1 ponto -
..::monstro-Bebinho::..
lucasmons reagiu a normando157 por um tópico no fórum
Eai Galera do Xtibia To aki pra posta um Monstro que eu acabei de Fazer Nome:Bebinho Como Ainda e um dos meus primeiros posts qualquer coisa me avisa ok Flw Galera Por Favor Agradeça REP+ Se vc gostou1 ponto -
Bom galera, estou precisando mais uma vez de suas ajudas. estou querendo botar o novo tibia-logo-artwork-to no meu antigo gesior mais estou com alguns problemas Segue a foto: Segue a parte do layout: </SCRIPT> </head> <body onBeforeUnLoad="SaveMenu();" onUnload="SaveMenu();"> <a name="top"></a> <div id="ArtworkHelper" style="background-image:url(<?PHP echo $layout_name; ?>/images/header/background-artwork.jpg);" > <div id="Bodycontainer"> <div id="ContentRow"> <div id="MenuColumn"> <div id="LeftArtwork"> <img id="Statue_1" src="<?PHP echo $layout_name; ?>/images/header/animated-statue.gif1" alt="logoartwork" /> <img id="TibiaLogoArtworkTop" src="<?PHP echo $layout_name; ?>/images/header/tibia-logo-artwork-top.gif" onClick="window.location = '?subtopic=latestnews';" alt="logoartwork" /> <img id="TibiaLogoArtworkBottom" src="<?PHP echo $layout_name; ?>/images/header/tibia-logo-artwork-bottom1.gif" alt="logoartwork" /> <img id="Statue_2" src="<?PHP echo $layout_name; ?>/images/header/animated-statue.gif" alt="logoartwork" /> </div> queria que ele ficasse normal, se alguem puder ajudar ficarei muito grato.1 ponto
-
[War] War Em Neptera
u n d e r reagiu a Billsworth por um tópico no fórum
O jogador Arnold Evolution membro da guild Revo Academy (uma espécie de sub-guild da Revolucion) criou um tópico bem polêmico no fórum do tibia dizendo que a guild Warcore não teria time e que jogadores que fossem dar world transfer para o mundo de Neptera para ajudar a Warcore na war apenas iria ter que esperar 6 meses. Segundo ele, o famoso jogador Judge Chia roubou dois jogadores que eram da Warcore e que agora estão sem rumo (guild, protects, etc). Respondendo, membros da Warcore, disseram que era apenas uma atitude de quem está inseguro. Pelo que pareceu, jogadores de outros mundos não se deixaram abalar e também comentaram. Fonte: Fórum do Tibia1 ponto -
Vodkart Da Uma Olhadinha
JuninhoAlvees reagiu a Nando3513 por um tópico no fórum
no caso eu quero 6 magias nova para o meu ot para os players vip para que eles nao precisem compra as armas vip intede eu sei um geito usando item editor seleciono notremoveable o item nao pode ser movido de onde ele ta, no caso usando o mesmo eskema de sumona arrow "exevo con" e tals nao daria certo pq ele manda o item direto para a bp, e apos a bp tiver cheia ele começa manda na mão. preciso q a magia mande o item direto pra mão! seria assim: exevo aura wand exevo aura bow exevo aura rod exevo aura axe exevo aura sword exevo aura club cada item terá a duração de 30 minutos no caso isso eu sei fazer no attribut key 1- Player so podera fazer se ele nao tiver o item no corpo ja. 2 -E se no caso ele tentar tirar da mão o item sumice na hora. axo q fico claro assim.. o que eu preciso que tu faça Vodkart e uma magia que que cria o item direto na mao ja so isso o resto eu me viro.. cya1 ponto -
Adicione isso em seu layout.php <?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?> que sua vida se torna bem mais simples do que usar a dica ai de cima.1 ponto
-
Galera Me Ajuda Estou Com Um Pobrema
volcam reagiu a williansacho por um tópico no fórum
o meu catch esta com um erro ele pega o pokemon na hora a pokeball nao falha nunca sempre pega e eu quero que falhe se ela fica pegando sempre qual a graça me ajuda o otserv chama:fight ru baixei ele nesse topico>http://www.xtibia.com/forum/topic/153484-pokemon-fight/ se alguem pode me ajudar com o meu pobrema muito obrigado ^-^des de agora vlw me ajuda ai! :smile_positivo:1 ponto -
Showoff - Resident Evil
gonorreiaswat reagiu a S3rial7 por um tópico no fórum
Link>http://www.linkagratis.net/colecao-resident-evil-6-livros/< N sei c presta mas tem 6 livros ai pra baixar xD concordo com vc tbm gosto do bom e velho RE -->EDITED<-- N presta nem olha--' -->EDITED<-- http://www.elivros-gratis.net/elivros-gratis-terror-resident-evil.asp esse funfa pelo menos o primeiro livro baixei e presta!!1 ponto -
1 ponto
-
Tipo assim ee sei como q faiz tipo mas eu quria o nome e o numero disso aqui doSendMagicEffect tipo assim doSendMagicEffect: 35= Corações .... Se vc souber vlw MAs vlw a intençao vc queria tipow uma lista de efeitos ? http://www.xtibia.com/forum/topic/129140-lista-de-efeitos-854-e-como-usa-los/page__p__851245__hl__%2Blista+%2Bde+%2Befeitos__fromsearch__1#entry8512451 ponto
-
[Fechado]
DaNDaNrOxX reagiu a Saymon14 por um tópico no fórum
O Barzinho do Eks é uma area off-topic no qual nao pode ser criados topicos relacionados a tibia ou ot server, caro usuario queira criar um topico na area de duvidas sobre script http://www.xtibia.com/forum/forum/189-duvidas-sobre-scripts/ obrigado, passe bem :smile_positivo:1 ponto -
1 ponto
-
[Ticker] Valor Máximo De Bid É Aumentado
Linshun reagiu a Billsworth por um tópico no fórum
Agora o valor máximo para dar bids em casas foi aumentado para 100,000,000 gold coins. N.T: Bid é o lance que você dá para poder comprar uma casa. Fonte: Tibia.com1 ponto -
INTRODUÇÃO Os habitantes permanentes do Tibia são geralmente referidos como "non-player characters" (personagens não-jogadores) ou simplesmente "NPCs". Eles são normalmente humanóides em aparência, mas ao contrário de jogadores, eles estão sempre por perto e não podem ser atacados. A maior parte dos NPCs são pessoas boas que vivem nas vilas, aldeias e cidades, mas você pode encontrá-los em qualquer lugar do Tibia. Existem até NPCs com forma de monstros! Enfim, eles podem ser prestativos de várias formas - eles podem fazer comércio com você, enviá-lo para uma missão ou fornecer informações valiosas. Alguns NPCs irão marcar seu automap com locais de interesse se você pedir por isso. A conversa com NPCs acontece sempre no canal NPCs. IDENTIFICANDO NPCs É muito fácil identificar NPCs: quando você inicia uma conversa, receberá a resposta no canal NPCs. Além disso, todos eles andam lentamente (apesar de que alguns ficam imóveis) e quando você dá look neles não aparece informações sobre level ou vocação, apenas o nome do mesmo. Alguns NPCs possuem roupa especial, como o King Tibianus. Outros, como já dito, podem ter forma de animal. CONVERSANDO COM NPCs Você pode abrir o canal NPCs apertando a combinação Ctrl+O (e dando um duplo-clique sobre o canal). Mas não há necessidade. Sempre que você cumprimentar um NPC no Local Chat usando as palavras "hi" (oi) ou "hello" (olá) o canal será automaticamente aberto e a resposta aparecerá nele. A mensagem também irá aparecer acima do NPC, como mostra a imagem abaixo. No entanto, só é possível continuar a conversa, após o cumprimento, no canal próprio. É importante lembrar também que os NPCs geralmente só respondem personagens que estão em uma área de 49 metros quadrados (considere cada quadrado como 1 metro quadrado), conforme a figura abaixo: O NPC só irá te ouvir se você estiver dentro desta área. A conversa com NPCs é feita através de palavras-chave. Algumas palavras-chave são destacadas por cor diferente. Como você pode ver na imagem, a palavra trade foi destacada, o que significa que se você disser essa palavra o NPC terá algo para responder. No entanto, algumas vezes você não vai notar nenhuma palavra em destaque e terá que usar sua imaginação para encontrar as palavras corretas. Por exemplo, se você está atrás de roupas novas, palavras como "outfit", que significa roupa em inglês, ou "addon" podem ser úteis. Você deve ter sempre atenção às frases principais que podem te dar dicas sobre o que você deve procurar. A tradução do início da frase da NPC Rowenna seria: "Bem vindo a melhor loja de armas na terra!" Logo, é deduzível que ela é uma comerciante de armas, então não faria sentido você tentar negociar um par botas com ela. DICAS GERAIS Toda cidade possui um NPC guia que ajuda jogadores que estão chegando a achar os locais mais importantes, como depot e bank. Eles estão normalmente andando perto do porto da respectiva cidade. Esses NPCs podem ser reconhecidos pela palavra "Guide" na frente de seus nomes. Apenas as cidades Svargrond e Kazordoon não possuem guias, mas elas tem outros NPCs que dão algumas ideias gerais de onde alguma coisa é localizada. Para pedir que o NPC marque locais importantes da cidade no seu automap, diga "hi", "mark", "yes". Tenha certeza de não dizer palavrões aos NPCs. Muitos deles são ofendidos facilmente e podem puní-lo severamente se você os insultar! Guarda da cidade Thais lançando um feitiço sobre o jogador que o insultou. Alguns NPCs não respondem as palavras hello/hi, pois exigem um tratamento diferenciado. Um exemplo são os reis, rainhas e imperadores do Tibia. Você tem que demonstrar que eles são superiores dizendo frases como "Hail <nome do NPC>" (exemplo: "Hail King!" - "Salve o Rei!"), ou ao menos saudá-lo usando o título dele "Hello <título e nome do NPC>", e não apenas hi. Ainda, existem NPCs que falam línguas próprias diferentes da nossa, como é o caso da linguagem dos orcs. Não é necessário encerrar conversas com NPCs. Ao se afastar, a conversa será automaticamente encerrada. Alguns NPCs, no entanto, podem se sentir ofendidos com isso e te chamarem de mal educado. Apesar de não ser necessário, não custa nada falar um "bye" para eles. A maioria dos NPCs falam ou gritam no Local Chat quando algum personagem está por perto. Se você se sentir incomodado com isso você pode apertar a combinação Ctrl+I e adicionar o nome do NPC na lista de ignorados. Mas não faça isso, eles são legais às vezes! PALAVRAS-CHAVE COMUNS Hi/Hello (usado para iniciar a conversa) Trade (usado para fazer comércio com o NPC) Offer (usado para ver se o NPC tem interesse em algo, ou tem algo a oferecer) Mission (usado para pedir uma missão) Job (usado para perguntar seu trabalho) Name (usado para perguntar seu nome) Help (usado para pedir ajuda) Bye (usado para encerrar a conversa) CURIOSIDADE Antigamente não existia o canal NPCs e só era possível se comunicar com NPCs através do Local Chat (antes chamado de Default). Existiam dois super problemas: O NPC só conseguia atender uma pessoa de cada vez. Todos os outros que cumprimentavam o NPC ficam numa fila de espera para serem atendidos. Então quests grandes como a Pits of Inferno, em que é preciso durante um certo momento conversar com vários NPCs, atrasavam horas por conta disso. Também havia muito engraçadinho que para atrapalhar o jogo dos outros "bloqueava" o NPC, demorando muito para encerrar a conversa. A foto abaixo é de um exemplo típico daquela época. Vários jogadores, durante um test server, aguardavam sua vez para poderem viajar. Isso mudou em 2008 quando foi lançado o Update 8.2. Com ele, sempre que um jogador fala com um NPC, o canal NPCs abre. Isso permite que vários jogadores possam conversar com um NPC ao mesmo tempo e assegura que falar com um NPC não possa mais ser "bloqueado" por jogadores mal-intencionados. Além disso, foi melhorada a forma como se faz comércio com NPCs. Antigamente, você precisava dizer no Local Chat a palavra "trade" e esperar o NPC responder quais itens ele vendia. Para negociar um item, você tinha que falar "Buy <nome do item>" ou "Sell <quantidade em números> <nome do item>". Ou seja, quando você chegava de uma hunt com um monte de itens você tinha que contar antes de vender. Isso finalmente mudou já que agora quando você diz a palavra trade para um NPC, uma nova janela se abre do lado direito da sua tela. Então, escolhendo Sell ou Buy você pode rapidamente ver quais itens você pode vender ou comprar, quantos você tem e qual preço ele paga. Uma barra também permite que você confortavelmente escolha o número de itens que quer negociar e verificar se tem dinheiro suficiente com você para fechar negócio. Imagem que mostra com era antigamente e um dos problemas que podia acontecer. Fonte: TibiaBR Clique aqui1 ponto
-
Promocao Para Gesior
chokitorush reagiu a Dhenyz por um tópico no fórum
uhum, geralmente agente usa imagens, eu vo procura aki, daeeu do um edit e posto aki. Teh mais1 ponto -
[Fechado]
DaNDaNrOxX reagiu a fsg por um tópico no fórum
Cara, leia as regras! É Proibido sites relacionados á Warez, Cheats(Seja qual for o jogo), Tibia e/ou OTserv, Design, Pornô ou qualquer outra coisa que fira as regras gerais do XTibia. Reportado!1 ponto -
Fly E Surf So Para Player Premium
filipeva87 reagiu a Kuro o Shiniga por um tópico no fórum
Ta ai: Espero ter ajudado!1 ponto -
to arrumando pessoal calma1 ponto
-
Showoff - Resident Evil
luiziinho reagiu a gonorreiaswat por um tópico no fórum
Então, no momento não quero montar uma Equipe, porque na verdade, eu sou mto ocupado. Trabalho, faço Cursos (Inglês e Web Design), Namoro e sou Micro-Empresário... Sim, tenho uma Empresa com CNPJ e tenho Conta Jurídica no banco...etc.. isso significa que em breve terei ainda menos tempo pra dedicar ao Projeto, aí não poderia abandonar os membros da Equipe. Sendo assim, eu monto conforme minha disponibilidade de tempo. Claro que não pretendo ficar montando este server pro resto da vida, mas vou adiantando como posso. Pretendo fazer uns testes sim... quando estiver mais próximo de ficar pronto! Abraços :smile_positivo:1 ponto -
Duelo De Summons
luisfe23 reagiu a Demonbholder por um tópico no fórum
Acredito que com algumas alterações seja possível sim. Obrigado pelo elogio, até.1 ponto -
Construindo Uma Loja De Armaduras
folfer reagiu a Demonbholder por um tópico no fórum
É isso cara, continue assim. Tutorial aprovado e movido.1 ponto -
É isso mesmo! Bom, muita gente não conhece o poder da linguagem lua e constantemente venho batendo nesta tecla para mostrar que pode-se fazer todo tipo de coisa com lua. Hoje venho mostrar a biblioteca ProteaAudio, que executa arquivos .ogg. Para tanto, fiz uma função que executa uma playlist, com a opção de randomizar a execução. Este script surgiu quando eu estava trabalhando na minha equipe para montar um servidor de pokemon com audio, daí as músicas serem de pokemon. Vamos ao script: require("proAudioRt") -- Função que cria uma playlist e a executa function play(list, stack, rand, loop) rand = rand or false if not proAudio.create() then os.exit(1) end if stack == (#list+1) then if loop == false then proAudio.destroy() return false else stack = 1 end end local nex = rand == true and list[math.random(#list)] or list[stack] local x = proAudio.sampleFromFile(nex) if x then proAudio.soundPlay(x) print("Now playing: ".. nex .. "[".. stack .. "/".. #list .."]") end while proAudio.soundActive() ~= 0 do proAudio.sleep(0.5) end return play(list, stack+1, rand, loop) end -- Minha playlist local c = { [1] = "bgm-01.ogg", [2] = "bgm-02.ogg", [3] = "bgm-03.ogg", [4] = "bgm-04.ogg", [5] = "bgm-05.ogg", [6] = "bgm-06.ogg", [7] = "bgm-07.ogg", [8] = "bgm-08.ogg", [9] = "bgm-09.ogg", [10] = "bgm-10.ogg", } -- Executa a playlist c, iniciando de 2 com randomização habilitada play(c, 2, true) Para executar, é necessária a biblioteca ProteaAudio e de preferência o Scite instalados. Você pode também baixar o pacote com todos os arquivos (biblioteca ProteaAudio, função e músicas) aqui. Removi a dll lua5.1 do pacote pois acusava virus. Caso forem executar, lembrem-se de adicioná-la à pasta dos arquivos. flw1 ponto
-
[8.54] Mapa Pokemon Betinhowz666
adeftronic reagiu a betinhowz666 por um tópico no fórum
a spr e dat estão para download.1 ponto -
Sitema Vip Com Promotion
tecobertulli reagiu a matheusbertulli por um tópico no fórum
aee too qerendo um sistema qe ao adicionar vip pelo !buyvip ele recebe uma promotion vip ..vllww :XTibia_smile:1 ponto -
doPlayerAddItem(killer, itemid, 1) no lugar de --doTransformItem(item.uid, 2294) lembrando que esses -- fazem com que a linha não seja lida pelo script1 ponto
-
[Gesior Acc] Guild War System Com Escudos
Dwig reagiu a walefxavier por um tópico no fórum
Jeet ,coloque o nome do mapa de world e no config.lua coloque world.otbm ! redkiller,Isto acontece quando não se usa o distro certo. KibeMatheeus,postei no intuito de ajudar.Tudo que foi postado,foi eu que comprei,e não veio nada dentro das pastas falando que não podia postar.1 ponto -
vai na pasta data\actions\scripts copie 7 aquivos lua e os renomeos de Box1 Box2 Box3 Box4 Box5 Box6 na box1 coloke isso: function onUse(cid, item, frompos, item2, topos) if doRemoveItem(item.uid,1) then doPlayerSendTextMessage(cid,22,"vc acabou de ganha um item do nivel 1") doPlayerAddItem(cid,2195,1) end end e salva na box2 coloke isso: function onUse(cid, item, frompos, item2, topos) if doRemoveItem(item.uid,1) then doPlayerSendTextMessage(cid,22,"vc acabou de ganha um item do nivel 2") doPlayerAddItem(cid,2476,1) doPlayerAddItem(cid,2477,1) end end na box3 coloke isso: function onUse(cid, item, frompos, item2, topos) if doRemoveItem(item.uid,1) then doPlayerSendTextMessage(cid,22,"vc acabou de ganha um item do nivel 3") doPlayerAddItem(cid,2491,1) doPlayerAddItem(cid,2487,1) doPlayerAddItem(cid,2488,1) end end na box4 coloke isso: function onUse(cid, item, frompos, item2, topos) if doRemoveItem(item.uid,1) then doPlayerSendTextMessage(cid,22,"vc acabou de ganha um item do nivel 4") doPlayerAddItem(cid,2498,1) doPlayerAddItem(cid,2492,1) doPlayerAddItem(cid,2469,1) end end na box5 coloke isso: function onUse(cid, item, frompos, item2, topos) if doRemoveItem(item.uid,1) then doPlayerSendTextMessage(cid,22,"vc acabou de ganha um item do nivel 5") doPlayerAddItem(cid,2493,1) doPlayerAddItem(cid,2494,1) doPlayerAddItem(cid,2495,1) end end na box6 coloke isso: function onUse(cid, item, frompos, item2, topos) if doRemoveItem(item.uid,1) then doPlayerSendTextMessage(cid,22,"vc acabou de ganha um item do nivel 6") doPlayerAddItem(cid,2471,1) doPlayerAddItem(cid,2472,1) doPlayerAddItem(cid,2469,1) doPlayerAddItem(cid,2646,1) doPlayerAddItem(cid,2523,1) doPlayerAddItem(cid,2400,1) end end salvando todos vai na pasta data\actions e adicone isso -- Transform Box <action itemid="5792" script="Box1.lua" /> <action itemid="5793" script="Box2.lua" /> <action itemid="5794" script="Box3.lua" /> <action itemid="5795" script="Box4.lua" /> <action itemid="5796" script="Box5.lua" /> <action itemid="5797" script="Box6.lua" /> eu colokei os dado como a box pq eles tinha o numeros dezenhado uma pergunta que a mairia vai fazer o que elas dao resposta dao itens quais box1 da boots of haste id:2195 box2 da knight armor id:2476 knight legs id:2477 box3 da crown helmet id:2491 crown armor id:2487 crown legs id:2488 box4 da royal helmet id:2498 dragon scale mail id:2492 dragon scale legs id:2469 box5 da Demon helmet id:2493 Demon armor id:2494 Demon legs id:2495 box6 da golden helmet id:2471 magic plate armor id:2472 dragon scale legs id:2469 golden boots id:2646 blessed shield id:2523 magic sword id:2400 como fazer para troca os itens sor basta toca o id doPlayerAddItem(cid,coloka o id do item que vc que aqui pra troca,1)1 ponto
-
Aprenda A Fazer Novas Quests
Lordedosots reagiu a Mesenga por um tópico no fórum
Mas como eu sei onde irá ficar a quest????? reponde aew plx, flws!1 ponto