Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/31/11 em todas áreas
-
[War] War Em Neptera
u n d e r e um outro 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 Tibia2 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.1 ponto
-
Crystal Server Olá Venho lhes trazer novamente o Crystal Server, agora que o post do TFS 0.4 foi cair na internet por um Ex-TFS Developer liberou, este server não é mais "ilegal", por tanto ninguém pode vir aqui e fechar alegando isto. Aviso Conta do GOD é 222222/password O Changelog pode ser visualizado clicando AQUI Ou se prefirir veja dentro do download em doc/CHANGELOG Downloads: Server - 0.1.5 SOURCE - 0.1.51 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
-
Baiak Edited By Imperiumot
wesleyz182 reagiu a ImperiumOT por um tópico no fórum
Mapa Yurots Super Rox Editado Por ImperiumOT... Baiak Yurots V2.2 Oque Mudou ? Mudou a City ta 90% 8.6 Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Bossing of Baiak.. Foi Adicionado New Quest Baiak Super Foda !! ;D Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Baiak Yurots V1.1.4 Oque Mudou ? City Baiak : Editada Por Min ImperiumOT. Systema VIP : Edited Por Min ImperiumOT System Vip Como Funciona ? !buyvip (Para Comprar Vip)(Players) !vipdays (Para Ver Quantos Dias de Vip Você Tem)(Players) /addvip nomedoplayer,dyasvip (GOD) /delvip nomedoplayer,quantos dias de vip você quer tira desse player (GOD) Novos Comandos. !notice /guild -> Permite que você mande msg em vermelho para membros da sua guild !afk on ->Auto mensagem Ausente! !afk off ->Fica Normal Para Compra House:!buyhouse Para Se Desfazer da House:!leave Nova Magia Para Paladin:Exevo Con SanConjuga 15 Assassin Star Atk de Algumas Armas. Avenger 70/50 arcane staff 70/50 Magic Sword 65/45 Stunercutter axe 65/45 Thunder Hammer 65/45 Solar Axe 78/60 Warlord Sword 78/60 Imagens : clickAKI Downloads : Otserver rar. : Download Scan : AQUI Creditos: Baiak Lula ImperiumOT . EU Systema VIP Feito POR MIN : Ao Comprar O VIP : !buyvip tera um bau pra voce click, Em 5 Segundos, Seu Char Sera Logado E o NOME Do Player Ira Ser . Exemplo : [VIP] Viadinho [VIP] Player . Obrigado Gosto Do Baiak ? Click REP + >>> :button_ok:1 ponto -
(8.60) Global Mapa Com Npc Death Igual Ao 8.40
joaovitorjoia reagiu a devotti2 por um tópico no fórum
(8.60) mysql serv. :withstupidsmiley: rep+ por mim restaurar esse belo trabalho. |!buyvip uniqueid 13700 Ot igual ao 8.40 de bekman que atualizei para 8.60 e agora com armas vip. tah mto legal baixem ae. xtreme wand xtreme sword xtreme axe xtreme arrow xtreme bow InvaSOES POR COMANDO /mr. punish /dracola /massacre /handmaiden /orshabaal /demodras /necropharus /the old widow /zarabustor /xenia /yalchal /ferumbras /morgaroth /ghazbaran Cidades: ____________________ * Carlin * AB'Dendriel * Kazordoon * Port Hope * Edron * Ankrahmun * Venore * New Island * Svargrond * Ilha Dos Eventos * Thais * Yalahar ____________________ Quest's: ____________________ * Banshee Quest -- (LV 60) * Demon Helmet -- (LV 100) * Anihilator -- (LV 100) * Ancient Helmet -- (LV 100) * DSM -- (LV 95) * Demona Quest -- (LV 80) * RH -- (LV 30) * Behe Quest -- (LV 80) * Ring of the sky -- (LV 85) * Bright Sowrd -- (LV 45) * Banshee Quest -- (LV 60) * Crown Legs -- (LV 8) * Blue <> BOH <> SS -- (LV 60) * Warlock Quest -- (LV 70) * Knight Armor -- (LV 8) * Teddy Bear -- (LV 135) * Mms and Giant Sword -- (LV 100) * Fire Sowrd -- (LV 20) * Warrior Helmet -- (LV 8) * 4 Itens Raros -- (LV 210) <> Crystal Arrow <> Gold Ring <> Dragon Scale Legs <> Great Shield * 4 Itens Raros -- (LV 220) <> Magic Plate Armor <> Great Axe <> Horned Helmet <> Golden Boots * POI (Pits of Inferno) -- (LV 100) Descrição breve: A melhor quest do serv a mais demorada a mais aventurada a melhor =D. <> Avenger <> 100 platinum coins <> Frozen Starlight <> Boots of Waterwalking <> Stuffed Dragon <> Sprite Wand <> Arbalest * The Inquisition Quest. -- (LV 100) <> Royal Crossbow <> Warsinger Bow <> Spellbook of Dark Mysteries <> Emerald Sword <> Hellforged Axe <> Obsidian Truncheon <> Master Archer's Armor <> Fireborn Giant Armor <> Robe of The Underworld Credito: Natan beckman (90%) a mim(10%) a senha do god voce poem no sql studio. link para download: http://www.4shared.c...lobal_full.html :XTibia_smile: Nao sou obrigado a postar scans malz. Net lerda Para o bug das potions é só baixar este arquivo e por em scripts actions substituindo a que ja tem la >link > http://www.4shared.c...nE/Potions.html em actions.xml: <!-- Potions --> <action itemid="7439" script="liquids/berserk_potion.lua"/> <action itemid="7440" script="liquids/mastermind_potion.lua"/> <action itemid="7443" script="liquids/bullseye_potion.lua"/> <action itemid="7588" script="liquids/strong_health.lua" allowfaruse="1"/> <action itemid="7589" script="liquids/strong_mana.lua" allowfaruse="1"/> <action itemid="7590" script="liquids/great_mana.lua" allowfaruse="1"/> <action itemid="2281" script="liquids/mana rune.lua" allowfaruse="1"/> <action itemid="7591" script="liquids/great_health.lua" allowfaruse="1"/> <action itemid="8472" script="liquids/great_spirit.lua" allowfaruse="1"/> <action itemid="8473" script="liquids/ultimate_health.lua" allowfaruse="1"/> <action itemid="7618" script="liquids/health_potion.lua" allowfaruse="1"/> <action itemid="7620" script="liquids/mana_potion.lua" allowfaruse="1"/> <action itemid="8704" script="liquids/small_health.lua" allowfaruse="1"/> <action itemid="8474" script="liquids/antidote_potion.lua" allowfaruse="1"/> REP + AE E COMENTEM OQUE ACHRAM OU OQUE FLTA MUDAR.1 ponto -
Syn IP Changer [7.6 - 8.7x] Versões Suportadas: 7.6 até 8.7x! |- Download: http://download1046.mediafire.com/2dhx54i5poxg/2vz9220aq0va1po/Instalador+Syn+-+XTibia.com.exe Créditos: Syntax Talaturen's IP Changer [7.6 - 8.7x] Versões Suportadas: 7.6 até 8.7x! |- Download: http://www.xtibia.com/forum/index.php?app=core&module=attach§ion=attach&attach_id=5641 Créditos: Talaturen e Kornholijo. Té (+REP). Talaturen\'s IP Changer - XTibia.com.rar1 ponto
-
Item Ou Potion De Double Exp.
Bluetooth reagiu a MatheusGlad por um tópico no fórum
Item ou potion de double exp. By: MatheusMkalo Primeiramente vamos ver oque o script tem de diferente dos outros: Se voce sair com o efeito da exp potion o tempo da potion continuara passando, se voce logar antes que ele acabe voce ainda vai poder aproveitar umpouco da double exp. Voce pode escolher varias opçoes, como escolher se so premium accounts podem usar o item, quanta mana vai gasta, se vai remover quando usar e outros AGORA O SCRIPT SOH ESTA DISPONIVEL EM MOD: Vá na pasta mods e adicione um arquivo.xml com o nome de ExpPotion.xml e bote isso: <?xml version="1.0" encoding="UTF-8"?> <mod name="AdvancedExpPotionSystem" enabled="yes" author="MatheusMkalo" forum="XTibia.com"> <!-- Configs and Functions --> <config name="PotionExpConfigs"><![CDATA[ ------ CONFIGURE SEU SCRIPT ------ TRUE ou FALSE configs = { time = 1, ---- TIME IN MINUTES needpa = TRUE, needlvl = {TRUE, level = 50}, costmana = {TRUE, mana = 300}, addrate = 20, -- Exp que vai adicionar em % removeonuse = TRUE } function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end CreatureEventChecker = function(event, ...) -- Colex if isCreature(arg[1]) then event(unpack(arg)) end end creatureEvent = function(event, delay, ...) -- Colex addEvent(CreatureEventChecker, delay, event, unpack(arg)) end function getPlayerExtraExpRate(cid) -- By MatheusMkalo return (getPlayerRates(cid)[8]-1)*100 end ]]></config> <!-- exppotion.lua --> <action itemid="7440" event="script"><![CDATA[ domodlib('PotionExpConfigs') if getPlayerStorageValue(cid, 62164) >= 1 then return doPlayerSendCancel(cid, "You are already taking effect from this item.") end if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "You need to be a premmium account to use this item.") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "You need to be level " .. configs.needlvl.level .. " to use this item.") end if configs.costmana[1] then if getCreatureMana(cid) < configs.costmana.mana then return doPlayerSendCancel(cid, "You need " .. configs.costmana.mana .. " mana to use this item.") else doCreatureAddMana(cid, -configs.costmana.mana) end end if configs.removeonuse then doRemoveItem(item.uid, 1) end for i = configs.time*60, 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == configs.time*60 then creatureEvent(doPlayerSendCancel, configs.time*60*1000, cid, "The effect of the exp potion end.") end creatureEvent(doPlayerSendCancel, (configs.time*60-i)*1000, cid, "The effect of the exp potion will end in "..a..".") end doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, configs.time *60*1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) doPlayerSendTextMessage(cid, 22, "Agora voce ira receber mais exp por matar os mosntros.") setPlayerStorageValue(cid, 62164, os.time()) creatureEvent(setPlayerStorageValue, configs.time *60*1000, cid, 62164, 0) return TRUE ]]></action> <creaturescript type="login" name="ExpPotion" event="script"><![CDATA[ domodlib('PotionExpConfigs') local time = configs.time if os.time()-getPlayerStorageValue(cid, 62164) < time *60 then doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) creatureEvent(setPlayerStorageValue, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000 , cid, 62164, 0) for i = (time*60-(os.time()-getPlayerStorageValue(cid, 62164))), 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) then creatureEvent(doPlayerSendCancel, (time*60-(os.time()-getPlayerStorageValue(cid, 62164)))*1000, cid, "The effect of the exp potion end.") end creatureEvent(doPlayerSendCancel, ((time*60-(os.time()-getPlayerStorageValue(cid, 62164)))-i)*1000, cid, "The effect of the exp potion will end in "..a..".") end end return TRUE ]]></creaturescript> </mod> Tudo pronto, exp potion funcionando! O ID da potion usada no script foi o: 7440 (Mastermind Potion) Para usa-lo voce precisa tirar a linha no actions.xml da potion porque se nao vai bugar. Para trocar o id da potion eh so mudar essa linha: <action itemid="7440" event="script"><![CDATA[ Resposta para o Topico: Aew Galera Preciso Scripting Da Double Exp Potion1 ponto -
[Tutorial] Criando Portraits
deathstar007 reagiu a Ciffer por um tópico no fórum
Bom galera hoje dia 28/06 (ontem foi meu niver dai nem entrei), vou ensinar uma maneira facil e rapida de criar portraits para OT's de Pokemon (PokeTibia ou PokeOT) OBS: Se existe algum tutorial assim EU NAO VI entao peço que fechem Agora sem inrolação... Creditos: Eu (Ciffer) Criador do Noxitu Criador do Paint (Microsoft) Criador do Click Pic O que vai ser ultilizado? Click Pic Noxitu Item Editor (dat editor) Sprite Edior Paint Já vem no PC Se alguma imagem nao carregou aqui vai o Album do tutorial 1° Passo 2° Passo 3° Passo 4° Passo 5° Passo .::Edit::. Qualquer duvida me da um toque que eu tento dar uma explicação melhor PEÇO QUE COMENTEM, SE NAO NUNCA SABEREI SE ESTOU INDO BEM1 ponto -
Npc Montarias 9.1!
Eddy2000 reagiu a Admrevolution por um tópico no fórum
Ola Vim Trazer Pra Vocês O Npc De Montaria 9.1! Em Data/Npc Crie Um Arquivo Xml Com Nome De Domador E Adicione Isso : Em Data/npc/scripts Crie Um Arquivo .lua Chamado mounts e Adicione Isso : Espero Ter Ajudado Créditos:50%Admrevolution (EU)por adicionar as montarias 9.1 50%deletera Npc Montarias Versão 8.7 Obrigado!1 ponto -
Não tem muito oque explicar pelo nome, vocês já sabem. Vá na pasta talkactions/script e crie um arquivo com nome de sexy.lua e cole o seguinte script: -- Sexy System(Funny) by Cobraa. function prepareToSexy(ela, ele) doCreatureSetLookDir(ela, 3) pos = getThingPos(ela) doTeleportThing(ele, {x=pos.x+3, y=pos.y, z=pos.z}) doCreatureSetLookDir(ele, 3) mayNotMove(ele, true) mayNotMove(ela, true) end function Sexy(ela, ele, rounds) if rounds < 1 then mayNotMove(ele, false) mayNotMove(ela, false) setPlayerStorageValue(ele, 8958, -1) setPlayerStorageValue(ela, 8958, -1) return true end msg = {"OOHH!", "OMG", "FAST", "FUCK ME"} pos = getThingPos(ela) doTeleportThing(ele, {x=pos.x+1, y=pos.y, z=pos.z}) addEvent(doTeleportThing, 500, ele, {x=pos.x+3, y=pos.y, z=pos.z}) doSendAnimatedText(pos, msg[math.random(#msg)], math.random(255)) setPlayerStorageValue(ele, 8958, 1) setPlayerStorageValue(ela, 8958, 1) addEvent(Sexy, 1000, ela, ele, rounds-1) end function onSay(cid, words, param) if words == "!sex" then x = getPlayerByName(param) if x then if getPlayerSex(cid) == 0 then return doPlayerSendTextMessage(cid, 27, "Uma garota tem que ser convidada.") end if param == getCreatureName(cid) then return doPlayerSendTextMessage(cid, 27, "Isto não é possivel") end if getDistanceBetween(getThingPos(cid), getThingPos(x)) > 4 then return doPlayerSendTextMessage(cid, 27, "Este player está muito longe para tranzar.") end if getPlayerStorageValue(x, 8958) == 1 or getPlayerStorageValue(cid, 8958) == 1 then return doPlayerSendTextMessage(cid, 27, "Você ou a pessoa que convidou está tranzando neste momento.") end setPlayerStorageValue(x, 8956, cid) setPlayerStorageValue(x, 8957, 1) doPlayerSendTextMessage(x, 19, getCreatureName(cid)..", te convidou para tranzar, diga !aceitar ou !recusar") doPlayerSendTextMessage(cid, 19, getCreatureName(x)..", foi convidado(a) para tranzar aguarde sua resposta.") else doPlayerSendTextMessage(x, 27, "Player Not Found.") end elseif words == "!aceitar" then if getPlayerStorageValue(cid, 8957) == 1 then if getDistanceBetween(getThingPos(cid), getThingPos(getPlayerStorageValue(cid, 8956))) > 4 then return doPlayerSendTextMessage(cid, 27, "Este player está muito longe para dar uma resposta.") end doPlayerSendTextMessage(cid, 19, "Você aceitou o convite de "..getCreatureName(getPlayerStorageValue(cid, 8956))..".") doPlayerSendTextMessage(getPlayerStorageValue(cid, 8956), 19, "Seu convite foi aceito.") setPlayerStorageValue(cid, 8957, -1) prepareToSexy(cid, getPlayerStorageValue(cid, 8956)) addEvent(Sexy, 800, cid, getPlayerStorageValue(cid, 8956), 20) else doPlayerSendTextMessage(cid, 27, "Você não tem nenhum convite de tranza para aceitar.") end elseif words == "!recusar" then if getPlayerStorageValue(cid, 8957) == 1 then if getDistanceBetween(getThingPos(cid), getThingPos(getPlayerStorageValue(cid, 8956))) > 4 then return doPlayerSendTextMessage(cid, 27, "Este player está muito longe para dar uma resposta.") end doPlayerSendTextMessage(cid, 19, "Você recusou o convite de "..getCreatureName(getPlayerStorageValue(cid, 8956))..".") doPlayerSendTextMessage(getPlayerStorageValue(cid, 8956), 19, "Seu convite foi recusado.") setPlayerStorageValue(cid, 8957, -1) else doPlayerSendTextMessage(cid, 27, "Você não tem nenhum convite de tranza para recusar.") end end return true end Depois na pasta talkactions procure o arquivo talkactions.xml e adicione a seguinte tag: <talkaction words="!sex;!aceitar;!recusar" event="script" value="sexy.lua"/> Para convidar alguem para fazer sexo , use o comando: !sex Nome do Player Para responder use !aceitar ou !recusar Obrigado a todos.1 ponto
-
Ola galera do xTibia sou Trollz especialista em modems e na área de informatica. Bom muita gente ja deve ter dito para você, " Cara em net compartilhada não da para ter server SEM Hamachi desiste... " bem... estava pesquisando a 5 anos como resolver esse problema... crio servers desdos 9 anos e agora tenho 14 ou seja descobri a solução esse ano ainda é NEW~ mais acho que algums usuarios de Router devem saber desse pequeno truque , so let's begin! ~•Coisas Necessarias•~ Modem D-link 500b. Net acima de 1mb para rodar server sem LAG Inteligencia :S Primeira coisa que você vai fazer, Abra o painel de controle. Depois disso, se por um acaso seu menu estiver diferente no painel de controle altere ele usando a opção, Alternar para o modo de exibição clássico no lado esquerdo da Janela. se não estiver pule esta parte. Agora de um duplo clique no Icone, Adicionar Hardware. Na janela que abrir clique em avançar> Marque a opção " Sim, Eu ja conectei o hardware" e clique em avançar> Agora selecione a ultima opção da lista que apareceu. selecione a opção Adcionar novo dispositivo Hardware. e clique em avançar> Marque a opção Adcionar hardware que eu selecionar diretamente de uma lista ( avançado ) e clique em avançar> Selecione a opção Adaptadores de Rede. E clique em avançar. Clique na opção Microsoft e no lado direito clique na opção Microsoft Loopback adapter. e clique em avançar> clique em avançar> na proxima janela que aparecer. agora vem a parte mais complicadinha. Configurar o Loopback adapter e abrir as portas , let's continue! entre no site meuip.com.br, veja o ip que vai aparecer e copie ele. Logo após isto abra novamente o painel de controle. E selecione o icone Conxões de Rede. Veja qual dispositivo contem a frase "Microsoft Loopback adapter" na descrição e clique com o botão direito nele. Selecione a opção propiedades. Selecione a opção Protocolo TCP/IP e clique no botão Propiedades. Configure de acordo com as suas informações. Porem na parte onde esta escrito Gateway ainda não mexa nela, você precisa descobrir qual é o seu gateway abra o dispositivo de rede normal, Conexão Local geralmente é o nome dele. E abra a aba suporte na janela que abrir e la estara seu Gateway e Ip local ( OBs: Anote o Ip local precisaremos dele la na frente. ) Volte nas configurações do Loopback adapter coloque seu Gateway e clique em OK Agora va no Mozila Firefox, Google Chrome, o navegador que você usar... e entre no seu gateway como se ele fose um site. Coloque o Usuario como admin e a senha admin e clique em OK ( caso não seja esse usuario nem essa senha procure a ajuda de quem configurou seu modem ou pesquise no google as senhas e usuarios que vem como padrão para o D-link 500b. ) Na pagina que abrir clique na opção "Advanced Setup" ( meu modem é D-link 500b Generation II, não ligue pra isso o 500b é a mesma coisa ja tive 1 e funcionava do mesmo modo para abrir portas e criar OTs entre outros jogos. ) Após clicar em Advanced Setup vai abrir umas opções clique na opção NAT no centro da pagina, uma outra pagina ira carregar, nesta pagina clique no botão Add. Configure igual diz a imagem abaixo e clique em Save/Apply , em server Ip adress coloque o Ip local que eu disse que era para anotar na parte do gateway. como eu havia dito, iria precisar deste Ip la para frente do tutorial. Pronto configure seu OT certinho com No-ip e mande braza!, só que uma observação... quando você reiniciar o modem ou haver uma queda de energia você devera colocar o ip que você ve no meuip.com.br no loopback adapter de novo se não seu ip deichara de ser Local e vai começar a dar acesso ao seu modem, e ai você não pode deichar por que o server não aceita que o ip local redirecione para o modem. Gostou? Clica nu (+)1 ponto
-
Iaaee X-viciados, beeleza? estou aqui pra postar mais um trabalho meu como mapper ( 3° post ) Sou iniciante ainda, intao pf peguem leve nas criticas, e por favor somente criticas Construtivas ! # ! Hj eu tava de bobeira a noite decidi faze alguma coisa, olhem oque saio : Continuiçao \/ de cima : continuiçao \/ Postem oque vcs acham aii, so um pequeno projetoo que eu fiz, vlw !!!1 ponto
-
War Arena System.
dully reagiu a MatheusGlad por um tópico no fórum
Todos os scripts foram testados em um ot 8.6 Bem o script é auto-explicativo, e ainda tem um video do sistema, acho que nao preciso explicar o que faz ne? AGORA EM MOD, MUITO MAIS PRATICO DE INSTALAR. SE FOR USAR O MOD VA ATE O FINAL DO POST, É EXATAMENTE IGUAL A VERSAO NORMAL, SO QUE MAIS PRATICO. FUNCIONA DO MESMO JEITO. Video: obs: Veja em fullscreen para ver melhor as msgs que retornam. Vá em data/lib e adicione esse script.lua com o nome de WarArenaLib: -- [[ Area and Positions Infos ]] -- areaplayersteam = { {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1} } areateam1ext = {x=80, y=305, z=7} -- Ponta superior esquerda da area do time um areateam2ext = {x=87, y=305, z=7} -- Ponta superior esquerda da area do time dois leaderteam1pos = {x=83, y=307, z=7, stackpos=255} -- Posição do lider do time um (que puxara a alavanca) leaderteam2pos = {x=87, y=307, z=7, stackpos=255} -- Posição do lider do time dois (que puxara a alavanca) newplayersposteam1 = {x=67, y=300, z=7} -- Posição para onde os players do time um serao teleportados newplayersposteam2 = {x=67, y=330, z=7} -- Posição para onde os players do time dois serao teleportados team1leverpos = {x=84, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time um puxara team2leverpos = {x=86, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time dois puxara leverafter, leverbefore = 9825, 9826 -- Ids das alavancas antes de puxadas e depois, consecutivamente (9825 = antes; 9826 = depois) posbenterteam1 = {x=78, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 1 posbenterteam2 = {x=92, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 2 backteampos = {x=77, y=307, z=7} -- [[ Storage Infos ]] -- team1leverstorage = 123497 -- Storage que sera usado quando puxarem a alavanca do time 1 team2leverstorage = 123498 -- Storage que sera usado quando puxarem a alavanca do time 2 haveteaminarena = 123499 -- Storage que sera usado para ve se tem algum time lutando na arena storageteam1death = 123500 -- Storage usado para ver quantos morreram do time 1 storageteam2death = 123501 -- Storage usado para ver quantos morreram do time 2 storageteam1 = 123502 -- Storage usado para ver quantas pessoas entraram na arena no time 1 storageteam2 = 123503 -- Storage usado para ver quantas pessoas entraram na arena no time 2 storageleader1 = 123504 -- Storage onde ficara guardado o uid do lider do time 1 storageleader2 = 123505 -- Storage onde ficara guardado o uid do lider do time 2 storageplayersteam1 = 123506 -- Storage que todos os players do team 1 iram ter. storageplatersteam2 = 123507 -- Storage que todos os players do team 2 iram ter. -- [[ Player Infos ]] -- needlevelarena = 20 -- Level que os outros jogadores sem ser o lider teram que ter. leaderlevel = 4000 -- Level que o lider tera que ter. onlyguildwars = true -- Se os membros de um time tem que ser da mesma guild do lider. (Nesse caso somente o lider da guild podera puxar a alavanca.) needplayers = 2 -- Quantidade de players que cada time tem que ter. -- [[ Functions ]] -- function getUidsFromArea(firstpos, area) local result = {} for i,x in pairs(area) do for s,z in pairs(x) do if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then table.insert(result, getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) end end end return result end function teleportUidsToPos(uids, pos) for i,x in pairs(uids) do doTeleportThing(x, pos) end end function isAllUidsSameGuild(uids, guildid) for i,x in pairs(uids) do if not (getPlayerGuildId(x) == guildid) then return false end end return true end function isAllUidsLevel(uids, level) for i,x in pairs(uids) do if not (getPlayerLevel(x) >= level) then return false end end return true end function haveQuantPlayersInArea(firstpos, area, quant) local result = 0 for i,x in pairs(area) do for s,z in pairs(x) do if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then result = result+1 end end end return result >= quant end function addStorageToUids(uids, storage, value) for i,x in pairs(uids) do setPlayerStorageValue(x, storage, value) end end function checkPoses(pos1, pos2) if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then return true end return false end function startArena() setGlobalStorageValue(storageleader1, getThingFromPos(leaderteam1pos).uid) setGlobalStorageValue(storageleader2, getThingFromPos(leaderteam2pos).uid) addStorageToUids(team1uids, storageplayersteam1, 1) addStorageToUids(team2uids, storageplayersteam2, 1) teleportUidsToPos(team1uids, newplayersposteam1) teleportUidsToPos(team2uids, newplayersposteam2) setGlobalStorageValue(storageteam1, #team1uids) registerCreatureEventUids(team1uids, "DeathTeam1") registerCreatureEventUids(team2uids, "DeathTeam2") setGlobalStorageValue(storageteam2, #team2uids) setGlobalStorageValue(haveteaminarena, 1) setGlobalStorageValue(team1leverstorage, 0) setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end function haveTeamInArena() return getGlobalStorageValue(haveteaminarena) == 1 and true or false end function isSqmFromArea(firstpos, area, sqmpos) for i,x in pairs(area) do for s,z in pairs(x) do if sqmpos.x == firstpos.x+s-1 and sqmpos.y == firstpos.y+i-1 and sqmpos.z == firstpos.z then return true end end end return false end function registerCreatureEventUids(uids, event) for i,x in pairs(uids) do registerCreatureEvent(x, event) end end Agora vá em data/actions/scripts e adicione um script.lua com o nome de WarArenaLever: function onUse(cid, item, fromPosition, itemEx, toPosition) team1uids = getUidsFromArea(areateam1ext, areaplayersteam) team2uids = getUidsFromArea(areateam2ext, areaplayersteam) if haveTeamInArena() then return doPlayerSendCancel(cid, "Already have a team in arena.") end if checkPoses(toPosition, team1leverpos) then if checkPoses(getCreaturePosition(cid), leaderteam1pos) then if getGlobalStorageValue(team1leverstorage) == 1 then setGlobalStorageValue(team1leverstorage, 0) return doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end if onlyguildwars and getPlayerGuildLevel(cid) < 3 then return doPlayerSendCancel(cid, "You need to be the leader of your guild.") end if onlyguildwars and not isAllUidsSameGuild(team1uids, getPlayerGuildId(cid)) then return doPlayerSendCancel(cid, "All of your team need to be in your guild.") end if not isAllUidsLevel(team1uids, needlevelarena) then return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.") end if getPlayerLevel(cid) < leaderlevel then return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.") end if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.") end setGlobalStorageValue(team1leverstorage, 1) doTransformItem(getThingFromPos(team1leverpos).uid, leverbefore) if getGlobalStorageValue(team2leverstorage) >= 1 then startArena() end else doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.") end elseif checkPoses(toPosition, team2leverpos) then if checkPoses(getCreaturePosition(cid), leaderteam2pos) then if getGlobalStorageValue(team2leverstorage) == 1 then setGlobalStorageValue(team2leverstorage, 0) return doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end if onlyguildwars and getPlayerGuildLevel(cid) < 3 then return doPlayerSendCancel(cid, "You need to be the leader of your guild.") end if onlyguildwars and not isAllUidsSameGuild(team2uids, getPlayerGuildId(cid)) then return doPlayerSendCancel(cid, "All of your team need to be in your guild.") end if not isAllUidsLevel(team2uids, needlevelarena) then return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.") end if getPlayerLevel(cid) < leaderlevel then return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.") end if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.") end setGlobalStorageValue(team2leverstorage, 1) doTransformItem(getThingFromPos(team2leverpos).uid, leverbefore) if getGlobalStorageValue(team1leverstorage) >= 1 then startArena() end else doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.") end end return TRUE end E em actions.xml bote essa linha: <action actionid="12349" event="script" value="WarArenaLever.lua"/> Agora vá em data/creaturescripts/scripts e adicione dois scripts.lua com esses nomes: WarArenaDeathTeam1: function onDeath(cid) setPlayerStorageValue(cid, storageplayersteam1, 0) setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1) if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then if onlyguildwars then doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".") else doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end return TRUE end WarArenaDeathTeam2: function onDeath(cid) setPlayerStorageValue(cid, storageplayersteam2, 0) setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1) if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then if onlyguildwars then doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".") else doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end return TRUE end Agora abra o creaturescripts.xml e adicione essas linhas: <event type="death" name="DeathTeam1" event="script" value="WarArenaDeathTeam1.lua"/> <event type="death" name="DeathTeam2" event="script" value="WarArenaDeathTeam2.lua"/> Agora vá em data/movements/scripts e adicione tres scripts.lua com esses nomes: WarArenaMovement1: function onStepOut(cid, item, position, fromPosition) local team = (fromPosition.x == leaderteam1pos.x and fromPosition.y == leaderteam1pos.y and fromPosition.z == leaderteam1pos.z) and "team1" or (fromPosition.x == leaderteam2pos.x and fromPosition.y == leaderteam2pos.y and fromPosition.z == leaderteam2pos.z) and "team2" if team == "team1" then if getGlobalStorageValue(team1leverstorage) == 1 then setGlobalStorageValue(team1leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end elseif team == "team2" then if getGlobalStorageValue(team2leverstorage) == 1 then setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end end end WarArenaMovement2: function onStepIn(cid, item, position, fromPosition) local team = isSqmFromArea(areateam1ext, areaplayersteam, fromPosition) and "team1" or isSqmFromArea(areateam2ext, areaplayersteam, fromPosition) and "team2" if team == "team1" then if getGlobalStorageValue(team1leverstorage) == 1 then if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then setGlobalStorageValue(team1leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end end elseif team == "team2" then if getGlobalStorageValue(team2leverstorage) == 1 then if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end end end if getGlobalStorageValue(team1leverstorage) == 1 then if checkPoses(fromPosition, posbenterteam1) then doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "You can't enter now.") end elseif getGlobalStorageValue(team2leverstorage) == 1 then if checkPoses(fromPosition, posbenterteam2) then doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "You can't enter now.") end end end WarArenaMovement3: function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, storageplayersteam1) >= 1 then setPlayerStorageValue(cid, storageplayersteam1, 0) doTeleportThing(cid, posbenterteam1) setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1) if getGlobalStorageValue(haveteaminarena) >= 1 then if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then if onlyguildwars then doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".") else doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end end elseif getPlayerStorageValue(cid, storageplayersteam2) >= 1 then setPlayerStorageValue(cid, storageplayersteam2, 0) doTeleportThing(cid, posbenterteam2) setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1) if getGlobalStorageValue(haveteaminarena) >= 1 then if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then if onlyguildwars then doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".") else doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end end end return TRUE end E adicione essas linhas em movements.xml: <movevent type="StepOut" actionid="12350" event="script" value="WarArenaMovement1.lua"/> <movevent type="StepIn" actionid="12351" event="script" value="WarArenaMovement2.lua"/> <movevent type="StepIn" actionid="12352" event="script" value="WarArenaMovement3.lua"/> Pronto acabou rairiaria. Adicionando os Actions IDS: Nas 2 alavancas, adicione o actionid 12349. Nos 2 sqms que os players vao estar antes de entrar na arena adicione o actionid 12351. Nos 2 quadrados aonde os lideres irao ficar (na frente da alavanca) bote o actionid 12350. No sqm de sair da arena bote o actionid 12352. NA AREA DOS TIMES E NA ARENA, BOTE PELO MAP EDITOR PARA NAO PODER LOGAR. (Se voce nao fizer isso pode haver bugs.) Bem, se voce souber ler o script da lib, vai saber configura-lo para seu otserver. Versão MOD: (Abra o spoiler) O modo de configurar é exatamente igual ao normal. Flws. By MatheusMkalo1 ponto -
[Encerrado] Tfs 0.4 Erros
chokitorush reagiu a doohrush por um tópico no fórum
o Problema é o seguinte, eu estava empolgado para por war system em meu serv, dai então surgiu um PROBLEMA! Eu configuro meu xammp, gesior acc maker (site do otserv) deixo ele funcionando perfeitamente dai quando eu vou ultilizar meu distro 0.4 com war system ele pede novas Dll's então eu pego as Dll faltantes e ponho... o Server fica online então eu crio minha acc no site tudo certinho mais quando vai logar ele dis "password invalido" e não consigo mais acesar o otserv ( só pega acc manager) único geito que consegui deixar online foi usando o distro do Alissow Ots, mas não pega war system e não tem auto stacking items Se alguém souber como resolver da um HELP ai REP+ pra quem ajudar1 ponto -
- Certifique-se de ter salvo o conteúdo correto, com o nome e extensão correta. - Certifique se de reiniciar o xamp, e atualizar umas 7 vezes a página. - Caso o erro persitir adicione o meu msn: dennis_anderson232(arroba hotmail ponto com) - Entre no meu host http://189.74.195.195:8090 EDIT: Um já está resolvido. Faltam @ADM_Forever e o @biliieroxxx, caso ainda precisem de ajuda avisem, caso contrário o post já pode ser encerrado. Obrigado.1 ponto
-
ÊHÊ Meu First Script , Eu sei que não é Grande Coisa , Mais pra mim Foi um Grande Passo . EHE ... *_* . Pega o código . e Coloca em SeuOT/Data/Talkaction/Scripts function onSay(cid,words,param) if doPlayerRemoveMoney(cid,10000) == TRUE then doPlayerAddItem(cid,2173,1) doCreatureSay(cid,"Eae Bastardo Voce Morreu! E agora comprou Aol!",TALKTYPE_ORANGE_1) else doCreatureSay(cid,"Cara Vai arrumar uma Grana primeiro!",TALKTYPE_ORANGE_1) end end É isso Aew , Dps Vai em Talkaction.XML E Coloque Isso Lá Embaixo Nos Talkactions dos Players <talkaction words="!aol" script"buyaol.lua" /> É só isso por enquanto pessoal , ^^ Eu sei que já tem muitos . Mais Eu postei oque eu Aprendi oque eu Fiz . Talvez Eu Esteja Ajudando Uns e amolando outros , Mais é assim msm , Agente não agrada a todos Comentem aew pessoal , Eu fiz o Tópico Pra Receber Críticas Construtivas . EHE . Feliz Pacas , Rindo atoa .1 ponto
-
Ajuda Com Rme
lucasmoreno reagiu a Enzo Caue por um tópico no fórum
Eu acho q é por causa do spawn time , almenta ele , coloca 30-50 ! E tem mais , voce só pode colocar os bixos onde tem spawn , se voce coloca onde n tiver , ele n funfa mesmo !1 ponto -
AJUDEI??REP+ por favor tenta fazer isso vai no npc/scripts e cria um arquivo.lua e coloca esse código local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end npcHandler:setMessage(MESSAGE_GREET, "Olá, eu sou a {Ministra dos Carimbos}, como vai?") function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'knight')) then selfSay('Para virar knight você precisa ter 10 platinum coins, e falar trocar',cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'trocar') and talkState[talkUser] == 1 and getPlayerItemCount(cid,2152)>=10) then doPlayerRemoveItem(cid,2152,10) selfSay('Muito bem sua vocation foi trocada.', cid) doPlayerSetVocation(cid,voc) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Basta trocar essa parte : doPlayerSetVocation(cid,voc) voc = id da vocation e depois vai no npc: <?xml version="1.0" encoding="UTF-8"?> <npc name="Testee" script="data/npc/scripts/script.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="132" head="20" body="39" legs="45" feet="7" addons="3"/> <parameters> <parameter key="message_greet" value="Hello, |PLAYERNAME|. I can 'heal', 'haste', 'mana shield', invisible', upgrade your 'melee', 'magic', 'distance' and 'shield' skills."/> </parameters> </npc> script.lua é o nome desse script ai é so trocar nome aparencia vida e tals1 ponto
-
Stackpos
sfmlarl reagiu a Demonbholder por um tópico no fórum
Faaaaala galerinha! A pedido do usuário PsyMcKenzie estou aqui para postar este tutorial. Espero que seja útil para todos que tem alguma dúvida quanto ao Stackpos. Eu sinceramente não domino completamente a magia dos stackpos, mas espero poder tirar algumas dúvidas de quem sabe e ensinar quem ainda não sabe. Vamos logo ao tutorial: Stackpos • Introdução Stackpos é um dos index da tabela que guarda posições. Toda posição é uma tabela, exemplo: {x=160, y=50, z=7}, mas o que pouca gente sabe, é que o stackpos também faz parte desta tabela. Todos sabem que em uma unica posição podem haver vários itens, formando uma pilha de itens, portanto, para diferenciar a posição de um item da pilha para o outro foi criado o stackpos, que é o número que diz em qual lugar da pilha está o item. • Descobrindo o Stackpos O stackpos segue um padrão, ou seja, uma ordem. Vou mostrar primeiramente os stackpos especiais: 0 - O stackpos 0 de uma posição é sempre o tile, ou seja, o chão. 253 - Este número refere-se ao stackpos das criaturas que estão na posição, sejam monstros, players ou npcs. 255 - O item mais alto de um pilha tem o stackpos 255, além do stackpos normal dela. Agora vou mostrar como descobrir o stackpos de um item apenas olhando para a pilha. Considere a seguinte pilha: Primeiro vamos contar quantos itens tem a pilha. Neste caso, em um total de 4 itens (tile, table, chair, coin). Tile sempre terá o stackpos 0. Agora os outros recebem o stackpos contrário da ordem deles acima do chão. Coin receberá o stackpos 1 e 255. Chair receberá o stackpos 2. Table receberá o stackpos 3. Simples não? É sempre ao contrário da ordem deles acima do chão. Vamos a mais um exemplo para ficar bem claro, considere a seguinte pilha: Tile receberá o stackpos 0. Ring receberá o stackpos 1 e 255. Hammer receberá o stackpos 2. Coin receberá o stackpos 3. Chair receberá o stackpos 4. Table receberá o stackpos 5. • Montando uma Tabela com Stackpos Eu havia tido anteriormente que toda posição é uma tabela. Para montarmos uma posição com o index stackpos, simplesmente adicionamos ele no final, exemplo: {x=160, y=50, z=7, stackpos=253} Simples, não é mesmo? • Funções Auxiliares Sempre que preciso descobrir o stackpos através de um script, uso as seguintes funções: Pegar o stackpos pela posição e id do item. function getItemStackpos(position, id) if getTileItemById(position, id).itemid == 0 then return nil end for i = 0, 255 do local pos = getThingFromPos({x=position.x, y=position.y, z=position.z, stackpos=i}) if pos.itemid == id then return i end end end Para pegar o stackpos pelo uid do item, usamos a função getThingPos(uid), a qual já retorna uma tabela com o stackpos do item. É isso galera, qualquer dúvida só perguntar. Até mais.1 ponto -
Já existe um tópico aqui no tibia com a solução para seu problema, mas olhando a idéia, decidi melhorar ela: Primeiro crie um arquivo do Bloco de Notas na pasta seuot\actions\scripts com o nome teleportrune.lua Nele escreva: function onUse(cid, item, frompos, item2, topos) if item2.itemid == 0 then doPlayerSendCancel(cid,"Voce nao pode faser isso.") else playerpos = getPlayerPosition(cid) doTeleportThing(cid,topos) doSendMagicEffect(playerpos,2) doSendMagicEffect(topos,10) end end Depois em seuot\actions no actions.xml adicione: <action itemid="XXXXX" script="teleportrune.lua" /> --- No XXXXX É O ID DA RUNA Creditos: -------ArThUr-------1 ponto
-
1 ponto
-
(Tutorial) Como Dar Save? É Igual Pra Todos? Não.
Capslokado reagiu a HisashiitYamaguti por um tópico no fórum
Obrigado ae veio .1 ponto -
[8.54] Mapa Pokemon Betinhowz666
adeftronic reagiu a betinhowz666 por um tópico no fórum
Aquilo que está removido não foi nem critica e nem elogio.1 ponto -
[War] War Em Neptera
teletubiesxd reagiu a Linshun por um tópico no fórum
Notícia Aprovada e Movida. REP+1 ponto -
É só você copiar de outro mapa. Abra o mapa com a quest e vá até ela. Em seguida segure o botão SHIFT e selecione a area da quest. Depois e só copiar e colar no seu mapa.1 ponto
-
• [Aviso] Peça Seu Tutorial De Internet Compartilhada •
DevilKin2580 reagiu a Secular por uma questão
Olha não tem diferença na configuração dos IPs estáticos por ser um roteador diferente, dê uma olhada nos meus primeiros tutoriais, lá tem como configurar um ip estático no windows 7 e XP... Abraços.1 ponto -
Broadscrat Para Premium
fake123 reagiu a luisfelipinho15 por um tópico no fórum
Galera eu fiz um script aki me baseando no do /b e tambem no do MatheusMkalo mais do matheus so peguei 2 coisas entao nao vem falar que copiei nao Bem Vamos ao script. Va na pasta do seu server,Data,Talkactions e abra talkactions.xml Agora faça o seguinte Add a seguinte linha <talkaction words="/broadscrat" event="script" value="XXX.lua"/> Agora salve e feche e va em scripts e crie um arquivo .lua E ponha o seguinte script dentro. Legenda: Verde:Comando que sera usado. Vermelho:Nome do script. Rosa:Mensagem que sera dita se nao for premium. Galera é meu primeiro script que posto entao... Ajudei???Da rep+1 ponto -
[8.54] Team War
Ventaniaz reagiu a NatsuMcDonald por um tópico no fórum
1 - Função. Ola pessoal, estou postando ele aqui, pois uma pessoa postou la no topico de pedidos, respondi la, e estou postando com mais detalhes aqui, para outros não terem duvidas. O Script é muito util em servers de war, pois assim que um player entra no teleport pro mapa da war, a outfit dele é automaticamente mudada para a outfit do time dele, a outfit e as cores. 2 - Configurando teleport para o script. Abra o Map Editor, vá ate o teleport do time azul, clique com botão direito do mouse, e va nas propiedades, no local onde tem "actionid" e "uniqueid" adicione 5031. Feche as propiedades. Agora vá nas propiedades do time vermelho, e faça mesma coisa do time azul, so que na actionid e na uniqueid adicione 5032. Salve o mapa e feche. Mapa finalizado. 3 - Scripts, mãos a massa! * Configurando time azul. Agora, vá em "data ~> movements ~> scripts" crie um arquivo chamado blue.lua, dentro dele coloque: Explicação: "128" - A Outfit que o player ganhara ao entrar no teleport, que no caso 128 é o citizen. "88" - É a cor da cabeça do char, 88 é a cor azul. ( Cabelo e Botas ) "114" - É a cor preta. ( Esta representando o tronco e as calças. ) * Configurando time vermelho Agora, vá em "data ~> movements ~> scripts" crie um arquivo chamado red.lua, dentro dele coloque: Nesse caso, o codigo é o mesmo, mas a unica diferença é que o player ficara com as cores da cabeça e da bota vermelho. * Configurando movements.xml Va em "data ~> movements ~> movements.xml" e adicione o seguinte codigo: Feche e salve. 4 - Botando para players não mudarem as cores. Va na "pastadoseuot" e no config.lua, procure por isto: allowChangeOutfit, é se o player podera mudar outfit ( Mage, Summoner, Nobleman ). allowChangeColors, é se o player podera mudar as cores, deixe ele em false. allowChangeAddons, isto é se o player pode botar addons ou não, isso é a sua escolha. E só, duvidas e erros é so postar. Ate mais! 5 - Script com a sua cara. Caso queira mudar a cor da roupa do personagem ao entrar no teleport, é so mudar o valor de lookhead, lookbody, looklegs e lookfeets para o numero correspondente da cor. As cores logo abaixo:1 ponto -
Todos Os Comandos Necessarios..
chavephilips reagiu a Doidin por um tópico no fórum
Bom tem muita gente novata que pode está começando a jogar OT Server, pensando nessas pessoas resolvi montar um tópico falando todos os comandos para player que tem nos Server atuais.. (Ná maioria) Players: !frags - Ver quantos Injusts Kills você possui. !online - Ver quantos Player está online no server. !uptime - Ver á quanto tempo o Server está online. !pvp - Ver o Status do Server (PvP, No-PvP ou PvP Enforced) !q - Ver quanto dinheiro você possui. !serverinfo - Informações sobre o Server. (Exp, Skills, Magic Level...) !changesex - Não são todos que possui, mas serve para mudar de sexo. !commands - Olha todos os seus comandos !rank - Serve para ver os Ranks. (Exemplo: !rank sword) !buypremium - Antigamente você comprava premium no NPC, agora é por comando. Houses: Os comandos de Houses são iguais ao do Tibia Global. !buyhouse - Compra uma casa, tem que está virado para porta. !sellhouse (nome do player) - Vende sua casa. !leavehouse - Se retira da sua casa. alana sio - Sai de dentro da casa. aleta grav - Invita uma pessoa dentro da sua house e deixa ela abrir a porta. (tem que está virado para a porta.) aleta sio - Invita uma pessoa dentro da sua house sem ela poder abrir a porta. aleta som - Invita uma pessoa dentro da sua house e deixa ela abrir a porta. Guilds: Bom estes comandos de guild são novos, pois antes era tudo no NPC.. !createguild (Nome) - Este comando serve para criar a guild. Por exemplo: se você quer que o nome da guild seja System você fala !createguild System. !joinguild (Nome) - Este comando serve para entrar em uma guild. Por exemplo: se você quer entrar na guild cuja o nome seja System você fala !joinguild System. Só irá funcionar se você estiver invitado nela. !commands - Ao executar este comando no Guild-Chat, aparecerá todos os comandos possíveis de executar. OBS: Os comandos abaixo só funcionam se você falar eles dentro do Guild-Chat. !setmotd (Mensagem) - Este comando tem a função de mudar a mensagem-do-dia da Guild (esta mensagem aparece ao abrir o Guild-Chat). Por exemplo: se você quiser colocar para a mensagem ser: "Fala galera á War é hoje!!", você fala: !setmotd Fala galera á War é hoje!!. !cleanmotd - Este comando tem como a função de limpar a mensagem-do-dia. Ao limpar irá aparecer nada ao abrir o Guild-Chat. !leave - Serve para sair da guild, porém o Líder dela não pode, tem que promover alguém para Líder para poder sair, ou então usando o comando para fechar a Guild. !invite (Player) - Serve para convidar alguém a entrar à guild. Por exemplo: !invite Doidin. !kick (Player) - Serve para excluir alguém da guild. Por exemplo: !kick Doidin. !revoke (Player) - Serve para tirar o convite de uma pessoa que você fez. Por exemplo: !revoke Doidin. !promote (Player) - Serve para promover o char de Member para Vice-Líder da guild. Por exemplo: se você quiser promover Doidin, você fala !promote Doidin. !demote (Player) - Serve para rebaixar o char de Vice-Líder para Member. Por exemplo: se você quiser rebaixar o cargo de Doidin na guild para Member, você fala !demote Doidin. !passleadership (Player) - Serve para passar o cargo de Líder para um Vice-Líder. Por exemplo: !passleadership Doidin. !nick (Player), (Title) - Esta função serve para colocar um Title (título) em um Player. Por exemplo: se você quiser botar Protect by Kinaa no title em Doidin, você fala !nick Doidin, Protect by Kinaa. !setrankname (Rank Antigo), (Rank Novo) - Serve para mudar o nome do rank. Por exemplo: se você quiser mudar o nome de um rank (Knight) para outro (Bloker), você fala !setrankname Knight, Bloker. !disband - Serve para fechar a guild, só o Líder que pode fazer isso. Bom espero que tenham entendido tudo sobre os comandos :smile_positivo: Abraços, DoidinMaper.1 ponto -
Alissow Ots 4.11 [11/07/2010] 8.6 Completo!
FrozenGames reagiu a fsg por um tópico no fórum
Muito bom Alissow e toda sua Equipe ta de parabéns cara! Seus OTServs são sempre inovando para bem melhor, e agora vocês com o 8.6 Completo, ta de parabéns, REP +. Abraços.1 ponto -
Sharp Loader (Ip Changer Todas As Versões)
BizaoOtServer reagiu a history por um tópico no fórum
Hoje estou disponibilizando para o XTibia o Download do Sharp Loader. Esse programa é um IP Changer para TODAS AS VERSÕES e eu uso. Ele também tem como características atualizações automaticas, inclusive novas versões. Vou fazer um tutorial também para os iniciantes em OTServ, para que aprendam a usar o SharpLoader. 1° Você precisa baixar o programa: Download Sharp Loader LINK OFICIAL, NÃO PRECISA DE SCAN... OBS: Você precisa ter instalado o .NET Framework 4. - Se você não tem, CLIQUE AQUI PARA BAIXAR 2° Você abre o Arquivo usando um programa chamado WinRAR ou WinZIP, etc (se você não tem nenhum desses dois programas você pode baixar no Baiak, etc). 3° Seleciona a pasta SharpLoader e clica em Extract To, ali em cima, veja a imagem: 4° Selecione a área de sua preferência (no caso eu usei o Desktop) e clique em "OK": 5° Espere carregar e já pode fechar o Winrar. 6° Deve aparecer isso na área em que você extraiu, no meu caso no Desktop: 7° Agora entre na pasta e clique no programa com a imagem azul (Sharp Loader): 8° Irá aparecer algo assim: 9° "127.0.0.1" Esse número, como mostra a imagem é o IP que você usa para se conectar ao SEU SERVIDOR. Mas no caso, vamos fingir que nós estamos entrando no servidor de outra pessoa. É ali que você digita o servidor. 10° No caso eu usei um servidor que não existe, só para mostrar à vocês (history.servegame.com) 11° Agora deixe a opção "Auto" marcada, para que o SharpLoader dê uma pesquisadanos Clients do Tibia abertos, para dar Change IP automaticamente. 12° Abra o seu Tibia, na versão do servidor que quer usar. No caso o meu será o 9.10 13° Agora clique em "Change IP" no seu Sharp Loader: 14° Deu certo? Veja se o seu está semelhante ao meu: 15° Você pode observar que a versão e o IP do servidor escolhido ficou em cima do seu Tibia, do lado com símbolo e no SharpLoader apareceu a seguinte mensagem: "Ip Changed! (Version: 9.10). 16° Tudo certo! Agora já pode jogar no seu servidor. OBS: Sempre que quizer se conectar a um servidor usando o SharpLoader você deve efetuar do 9° passo em diante. É bem simples, fiz esse tutorial mais para iniciantes mesmo, que não sabem usar NENHUM IP Changer. Então até mais galera! Créditos: OBS 2: Se for postar em outro fórum, de os créditos por favor... Se eu ajudei, dá REP+0 pontos -
[Enquete Oficial] Qual Magia Do Tibia Você Usaria Na Vida Real?
teletubiesxd reagiu a Haxy por um tópico no fórum
deve ter sido o jv que votou em exevo pan-1 pontos -
[War] War Em Neptera
Linshun reagiu a teletubiesxd por um tópico no fórum
Linshun falou que te deu rep + pq quer puxar saco (falou tudo pelo ts)-1 pontos -
Bom galera eu queria por no gesior acc pra cria novas vocaçoes mas nao sei como fasso pra adicionar novos samples no data base alguem poderia me ajudar? preciso muitoo! agradeço des de já galerinha.-1 pontos