Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 01/07/11 em todas áreas

  1. Nome: Advanced Auction House v1.0 Autor: josejunior23 Server testado: Real Server 8.60 Como funciona? A ideia é do WoW(World of Warcraft), o Auction-House, que você poe lá items, e espera que outro jogador o compre caso ninguém compre, ele será removido apos X dias. Comandos: Informações: - Os items são guardado em um ficheiro .txt e não em uma database. - os items ficam guardados assim: 01/01/11 3031 2000 10 2 data, item, preço, quantidade, guid do player 1º - cria um ficheiro XML na pasta mods chamado ADVANCED-AUCTION-HOUSE, e poe isso dentro: 2º - crie um ficheiro .LUA na pasta mods/scripts chamado AAH e poe isso dentro: 3º - cria um ficheiro .txt na pasta do seu server(onde fica o .exe), chamado houseItems, que ficara -> houseItems.txt Algumas imagens do sistema: Anexos Download: Anexos.zip Anexos.zip
    3 pontos
  2. 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
  3. Kydrai

    Vip System By Account V1.0

    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: Vodkart
    1 ponto
  4. nastrowo

    Dreamweaver Cs5

    Bem, para quem não conhece, o Dreamweaver, é um programa que auxília você à criar seu site! Abaixo eu disponibilizo o link do programa DEMO. Não sei quanto a vocês mas sou totalmente contra pirataria: Clique aqui para baixar. O link é direto do servidor, porém a página e a descrição do programa ficam no Pega Já. Abraço galera. E aproveitem! (:
    1 ponto
  5. [Oficial] Real Global Map hello Galerinha do Xtibia, Venho aqui desponibilizar o mapa do Doidin (8.57 Só que editado com minhas ideias e na versão 8.60 OBS: Para rodar esse servidor No seu pc voce tem que ter 2GB+ de memória ram e em bom estado. ( nao recomendo abrir o otserv com o mapa editor aberto junto). Real Global Map: - Versão do Tibia:8.60 - Mapa global 95% full. - Quase todos os NPC's do Tibia Global. - Servidor com o mínimo de bugs possíveis. - Scripts arrumados. - Entre outros... Cidades: Quest's: Oque tem de melhor que o servidor do Doidin? Quase nada pois ele copio minhas coisas x) Algumas Print Screen: para quem nao conseguiu abrir o spolier e gostaria de ver as SS link abaixo: print screen.txt Créditos: - Doohz Rush - Doidin - Alissow - DoidinMapper - RenanSdc - TFS Team - Styller Team - Alissow Team - Feragon - Viana! - Azevedo ATUALIZADO DIA 28/10/2010 Scan: Arquivo Muito grande para fazer scan. Remeres Mapa Editor 2.0 ( nao use outra versão ou vai bugar o mapa: Download Aqui! Doohz Rush Server : Download Aqui! OBS: FOI ARRUMADO TODOS OS LOOT'S DOS MONSTROS, E FOI ADICIONADO A NOVA AREA DE ZÃO (OS Draken elite etc, todos configurados perfeitamente ) Atualização 2.2; Arrumado os Teleport's dos Drakens; Editado os seal's da POI (+ parecido com global); adicionado 1 npc de runa em northern de ZAO; arrumada as Houses, e bugs de Cormaya; Retirado BUG de money; Arrumado detalhes do mapa. MSN: Doohz_rush@hotmail.com Gostou? REP+ Ali do lado :arrow:
    1 ponto
  6. Ammy

    Mapa De Poketibia 8.54 28/12/10

    Informações Do Mapa O mapa foi criado por : No Love Stanislal Ammy Data de lançamento : 28 de dezembro de 2010 Conteudo Do Mapa Nesse mapa tem 2 novas cidades. Novas hunt. Novas Ilhas. Pokemons shiny. (Porfavor se você não tiver os pokemons baixe o servidor PKM-Rush EDITED By Thulio ou flash que são compativel Pode funcionar em outro tambem.) Varios pokemons adicionado no mapa. (Aconcelho a balancear bem os pokemons para ficar divertido) Comunicado Se tiver bugs no mapa porfavor reportar aqui no xtibia no post! (Melhor site de comunicação de Otserv) Eu Postarei aqui 1 Mes ou mais a nova atualização do mapa. A nova versão será mais detalhada e corrigido os bugs que vocês postarem. Contato! Servidores que gostárão do meu trabalho e que faça parte da equipe podem postár o msn no tropico.! OBS : Somente servidores Serios que não estragão ou que tenhão equipe competente que não sejão dirigido por criançãs. (Não interessa a idade tendo cabeça serve!) Participarei de bom grado por servidores 24 hs. Servidores que estáo iniciando (Se for 24hs e serio) Fotos Do Servidor! Download do Mapa No Link Abaixo: http://www.megaupload.com/?d=UVCW73Z0 Sei que teria que por vereficação de virus. Mas Podem Confiar So Mapper.! Não faço esse tipo de coisa. Creditos: PORFAVOR POSTEM OS CREDITOS NOS SERVIDORES! Stanislal No Love Ammy Obrigado A todos Quem gosto: Resp ++ Fiquem ligados que logo postarei a versão mais detalhada. Se eu postei na seção errada pesso disculpa Adiministradores do forum poderia mover para a seção correta? Obrigado dnovo!
    1 ponto
  7. guga236589

    Mapa Yourots By: Agressor 8.6

    FALA AE GALERA VIM AKE POSTAR UM MAPA EDITADO ALgumas Informaçoes Do Mapa - Exe - Gerenciador de Acc eddited - Erros corrigidos acc manager - Sistema de Enchanted - Protocolo: 8.6 - Os itens 8,6 - 8,6 outfits e addons (com Wayfarer). - Pet sistema - Marryage sistema - Black crânio - Monster 8,6 não no mapa, mas se forem adicionadas ao servidor - Chanel que toda a exposição da morte de cada jogador Cidades - - 2 citys VIP - Áreas de eventos - Pvp zona - Carlin (zona PVP) - 40 tps de monstro (jogadores normais, sem vip) - Artas busca - TPS Monster (para VIPs) - Editado por jogadores monstro altos níveis - Área de bola do pé (que você pisa no seu sistema e move a bola) - Carro de corrida Zone (esgotado / 7 com o deus do templo e usar os portais do salão) - Ajedres área Editado vocações - - Editado feitiços - Muitos treinadores - Quest addons - 3 invasões - Anti sistema pk (PKS atacar NPC) - NPC adjunto (muito útil para dar informações) - SISTEMA loteria (a cada 20 minutos) - Roupa da boneca talkactions principal - Super transformação anel (pulseira caos) - Talkaction para iniciar os eventos (explicação mais adiante) - Comando attr / fixo (para editar um item de ataque / attr ataque de Setembro) - Enquete do sistema (sistema de inquérito - explicação posterior) - Comando de ausência (Afk em off Afk!) - Sistema de banco por talkaction (explicação mais adiante) - Comando para enviar uma mensagem para todos da sua guilda (/ guild) - Comando e masturbar Sexo xD! - Comando Aol e Bp! ! - Command Rank (nível de Rank, Rank espada ... etc!) ! - Comando Magias explicações de comando: comando para o banco: ! Equilíbrio - Isso mostra o saldo em sua conta. ! Depositar dinheiro na sua conta - depósito. (Exemplo:! Depósito 15000) ! Depositall - Coloque todo o seu dinheiro na sua conta. ! Retirar - Receba o dinheiro de sua conta. (Exemplo:! Retirar 15000) ! Withdrawall - Leve todo o seu dinheiro na sua conta. ! Transferir dinheiro para outro jogador - Transferência. (Exemplo: [. Se o jogador não existe, não transfere todo o dinheiro], transferência Darkhaos, 15000) ! Transferall-Transfer todo o dinheiro na sua conta para outro jogador. (Exemplo:! Transferall Darkhaos [se o jogador não existe, não transfere nenhum dinheiro.]) Pesquisas comando: ! Createpoll PERGUNTA, Opção 1 | Opção 2 | Opção 3 |? Etc - Adicione uma pesquisa e as opções para o banco de dados e adiciona um id. ! Activatepoll ID - Permite uma pesquisa com o especificado id. ! Cancelpoll - Cancela uma pesquisa ativa. ! Seepoll - Mostra as últimas 10 sondagens acrescentou, que a criou e ids. ! Seeresults ID - Exibe os resultados da pesquisa especificado (só você) ! Remvotes ID - Remove os resultados da pesquisa especificado. ! Rempoll ID - remove completamente o banco de dados da pesquisa. ! Votepoll Choice - Vote em um dos inquéritos ativo. comando para iniciar os eventos: / Powerevent ligado ou desligado (/ powerevent on - abrir o evento / powerevent off - viu o evento) / Evtx (cordenadas x, onde o evento será ie / evtx 160) / Evty (cordenadas e onde o evento será ie / evty 54) / Evtz (z cordenadas onde o evento será ie / evtz 7) ! Participar (comando teleport onde este evento) Algumas IMAGEN : A principal cidade: Templo principal: zona de guerra (Carlin): algumas indagações: tetrix tps para os jogadores normais: tps jogadores VIP: formadores: cidade vip 1: zona de pvp: Casino: DANWLOAD : AKE SCAN :AKE Se Foi Bom o POST DA REP + PRA MIN
    1 ponto
  8. Update do The Diamond Server para a nova versão do tibia 8.62 Se encontrar algum bug, reporte neste tópico. A nova versão não foi testada, então se houver algum erro reporte aqui. Essa versão é a 1.0.6 BETA, então não tem as novas features 8.62 Peço desculpas pela demora =D, mais é que eu estava sem PC, então não podia compilar A versão 1.0.5 foi o maior FAIL kk, porque não tem ip-changer pra ela The Diamond Server 1.0.6 BETA Build: 3429 Changelog 1.0.6 BETA: - Suporte 8.62. Changelogs Antigos [Download Server] diamond106_beta.zip [Download Sources] Index of /the diamond server/1.0.6 [Repositorio] Browse Source ---------------------- Se gostou? Comente Visite o site official do The Diamond Server TibiaNetworks LLC
    1 ponto
  9. Bom, tava lendo alguns pedidos e vi este do usuario Maguinus e acabei gostando da ideia... O script consiste em fazer um monstro dentro de uma posição aleatoria dentro de uma area definida por 2 pontos (2 extremos de um retangulo por) globalevents\scripts -> boss.lua function onThink(interval, lastExecution) point1 = {x=145,y=382,z=7} point2 = {x=141,y=378,z=7} monster = "Minotaur" frase = "O minotauro invadiu o labirinto" value = 0 while (value==0) do if (doSummonCreature(monster, {x=math.random(point1.x,point2.x),y=math.random(point1.y,point2.y),math.random(point1.z,point2.z)})) then broadcastMessage(frase) value = 1 end end return TRUE end Edite estas linhas: point1 = {x=145,y=382,z=7} > 1º Ponto para selecionar a area point2 = {x=141,y=378,z=7} > 2º Ponto para selecionar a area monster = "Skeleton" > Monstro a ser criado frase = "O minotauro invadiu o labirinto" > Frase que ira aparecer - globalevents -> globalevents.xml <globalevent name="boss" interval="10800000" script="boss.lua"/> A invasão acontecera a cada 3 horas, para mudar mude o "interval" Não conheço muito bem esta linguagem, fiz em um tfs 8.7, o script funcionou, mas quando ele encontrava um SQM que não podia criar a criatura e ia procurar outro, dava um erro no console (erro falando que não havia como criar por causa da posição), mas funcionava. Se alguem souber como evitar o erro ou deixar o script mais simples, ficaria grato =D PS: Não consegui fazer o while (doSummonCreature(...)) do, fiz o value e usei a condição no if.
    1 ponto
  10. miguel223

    [8.60] Carlin War! Retirado

    Tópico fechado. Porque? Não uso mais Xtibia, não confiam em mim.
    1 ponto
  11. Manda efeito em area? Function: function doSendMagicEffectInArea(firstpos, area, effect) for i = 1, #area do for s = 1, #area[1] do if area[i][s] ~= 0 then doSendMagicEffect({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z}, effect) end end end end Como usar: Voce vai precisar fazer uma area, e declarar a firstpos. Exemplo: A posiçao x,y,z em vermelho corresponde a posiçao ao primeiro "1" na area. A area em azul sera aonde ira mandar effeitos. como no sistema de spells. Oque esta em rosa eh o numero do effect que sera mandado. Flw, gogo aprender script pra fazer o seu sistema de M1.
    1 ponto
  12. fiz uma talkaction pra vc function onSay(cid, words, param, channel) items1 = {2461, 2467, 2649, 2643} --Itens necessarios items2 = {5937, 5875} --Itens q o player vai ganhar removeitems2 = true -- true pra remover os itens necessarios false para apenas checar se o player tem os intens necessários for i = 1, table.maxn(items1) do if getPlayerItemCount(cid, items1[i]) <= 0 then doPlayerSendTextMessage(cid, 27, 'Você não tem as paradas.') return true end end if removeitems2 == true then for i = 1, table.maxn(items1) do doPlayerRemoveItem(cid, items1[i], 1) end end for i = 1, table.maxn(items2) do doPlayerAddItem(cid, items2[i], 1) end doPlayerSendTextMessage(cid, 27, 'Você trocou as paradas.') return true end <talkaction words="!trocar" event="script" value="SCRIPT.lua"/>
    1 ponto
  13. vitorszvitim

    Go/back Com Pokelevel System

    bom... posso te mandar este link aki que contem um server com todos meus Scripts Download Aki
    1 ponto
  14. meubk

    [Talkaction]System Moves [15/151]

    @phelipe se tiráro , é pq tu tava errado... @MaGoDaNeT precisa de uam função, ki eu naum tenho permição de postar, então agora eh com vocês... @xJack xJack, todos as storages tem ki ser diferente, naum pode ter uam storage igual, se naum dá nisso..
    1 ponto
  15. renansdc

    [Encerrado] [Duvida]Sobre .exe

    Provavelmente você terá que modificar, a não ser que você não tenha que adicionar novos efeitos para magias e outras coisas.
    1 ponto
  16. Introdução as funções básicas de Lua #1 Olá! :style: Bem, como eu tinha postado sobre as funções de Lua, eu achei interessante criar uma introdução para quem quisesse pegar o embalo da coisa. Fiz esta introdução com o intuito de que você já tenha uma base pra ir pro próximo tutorial, que é como,onde e por que usar algumas funções de Lua. Vamos lá, Mão a obra. Function Função! A função da function é dizer ao servidor o que iremos fazer, certo? É dentro da function que iremos desenvolver nossos scripts ^^ -- Mas tio, no Ot temos várias funções, por exemplo, clicar em um objeto e sair um negocinho, botar um item em cima de uma pedra e vai aparecer uma coisa, eu pisar em cima de uma pedra e aparecer uma mensagem ou um item!! Como eu faço pra o servidor diferenciar isso? Tipo, Se eu quiser que seja uma ação, um clique? Um movimento?! Boa pergunta. E como eu digo ao script o quê eu quero fazer ? Simples, basta eu seguir esta lista: function onUse (cid,item,frompos,item2,topos) Bem, está function tem a função de dizer ao script que será uma ação, um clique. Exemplo: Se eu quiser puxar uma alavanca, qual function eu uso ? Se eu quiser abrir um baú [caixa de quest] qual function eu uso ? Entenderam pra que serve o function onUse ? Não vou me aprofundar muito nele, mas só vou dá uma explicação de cada item (No próximo tutorial também irei falar dele com mais detalhe (Y)) Pronto, revisãozinha terminada =D function onStepIn(cid, item, frompos, item2, topos) Este aqui é utilizado para fazer que o script só execute quando você pisar em um determinado lugar. Se você pisar em algum canto, você poderá ganhar um item, ou aparecer uma mensagem. É pra isso que serve o onStepIn. function onStepOut(cid, item, frompos, item2, topos) Está em ao contrário da onStepIn.Este script só será executado quando você sair do piso especificado. Se você sair de cima de um piso submarino, você perder 100 de life, entendem ? function onSay(cid, words, param) Este script só será executado quando o jogador cid falar algo. Ou seja, quando cid falar uma palavra chave, este script irá funcionar. Exemplo: O jogador cid diz !Fly o script irá ser executado. function onAddItem(moveitem, tileitem, position) A função deste script é que ele só ira ser executado quando um certo item seja colocado em um lugar específico. Então é isso pessoal! Boa sorte ae nos estudos de scripts, e gogo para o próximo tutorial! "Funções dos scripts de Lua #2"
    1 ponto
  17. joaohd

    Bug Com Vocation

    E não se esqueça de adicionar as novas voc nas funções isDruid(cid), isSorcerer(cid), isKnight(cid) e isPaladin(cid). Abra data/lib/functions.lua e localize "isDruid". Deve estar assim (parte dela) isInArray({2,6}, getPlayerVocation(cid)) Adicione o id da sua vocação junto ao 2 e 6. Repita o exemplo com as demais funções. flw
    1 ponto
  18. Cuidados ao baixar um OTserv. XTibia.com Então galera, sábado, 21 de junho, 6:13 da manha. Aqui eu vou ensinar algumas coisas básicas que vocês devem saber para baixar um OTserv e depois explicarei cada uma delas. Vamos lá. Evite baixar OTservers sem scans. Evite também baixar OTserver de membros novos (Menos de 35 posts) sem ter nenhuma confirmação de que o OT é confiável em outro post no mesmo tópico. Nunca baixe OTservers de sites desconhecidos Sempre que possível, faça um scan do arquivo que você baixou. (Eu explicarei mais pra baixo no tutorial como fazer scan) Evite receber OTS pelo MSN. Caso o antivírus apite com o OT, corra logo parar saber do que se trata. As vezes pode ser somente uma dll não reconhecida. Sempre antes de clicar no link, verifique se aquele link é o mesmo que está escrito ali (Depois ensinarei) Ok, sabendo isso, você já pode ter muito mais segurança na hora de baixar OTservers. Mas agora eu irei explicar cada um dos tópicos citados acima. Evite baixar OTservers sem scans. Mas como eu vou saber se o OT tem scan? Geralmente ele vem junto do tópico em um link ou em uma ScreenShot. Ou alguém pode postar depois. O que é um scan? Scan é um serviço que analisa arquivos suspeitos e proporciona uma rápida detecção de vírus, worms, cavalos de tróia, e todos os tipos de arquivos maliciosos detectados por vários mecanismos de antivírus Hmm certo mas daí como eu vejo se está livre de vírus? Se você for pelo site VirusTotal, no qual eu vou ensinar a fazer o scan, Se o arquivo estiver limpo estará assim como nessa imagem: Bem, você verá se tem algo escrito no scan em VERMELHO se tiver escrito em vermelho é porque está contaminado. Mas se não houver nenhuma escrita em vermelho, pode baixar sossegado. Mas mesmo assim, depois de baixar é bom passar um scan. Eu ensinarei a como passar um scan mais pra frente desse tutorial. Ok, agora você já sabe como ver se um scan está limpo ou contaminado! Evite também baixar OTserver de membros novos (Menos de 35 posts) sem ter nenhuma confirmação de que o OT é confiável em outro post no mesmo tópico. Agora passaremos para a parte de que você na deve baixar OTs de novos membros. Por exemplo, Você entra em um tópico de um usuário recém-cadastrado que postou um OT. Daí você vai todo feliz e faz o download pensando que é boa coisa... Mas quando abre, PÊÊÊÊÊ, virus detected. E agora? Isso é pra você aprender a não baixar coisas não confiáveis ainda mais se não tver um scan. Mas como você pode saber se um cara é membro novo ou não?! Como por exemplo esse tópico: http://www.xtibia.com/forum/Mapa-90-Tibia-...810-t85020.html O cara tem 1 post e postou o OT. E sem Scan ainda por cima. Será que dá pra confiar em um cara desses? Acho que não ;/ Nenhum preconceito contra users novos. Mas temos que ter precaução. Agora veja a diferença pra esse tópico: http://www.xtibia.com/forum/81world-War-Pv...ced-t73259.html O membro é Sub-Administrador do XTibia, 6k de posts. Um post super confiável. Agora me diz, qual dos dois tópicos você prefere?! ;X Nunca baixe OTservers de sites desconhecidos Agora falaremos sobre baixar OTservers de sites desconhecidos. Imagina tu entra em um site desses: E lá tem o link pra tu baixar um OT. Que que você vai fazer? Fechar o site e entrar no XTibia e procurar um aqui. Grande parte dessas pessoas que criam sites assim pra por downloads de OTs, são vírus! Portanto, tenham cuidado e escolham sempre um site conhecido e respeitado como o XTibia.com Então, agora vocês já sabem que não se deve baixar em sites desconhecidos! Sempre que possível, faça um scan do arquivo que você baixou. Agora, ensinarei a como fazer um scan! Primeiro de tudo o que é um scan (de novo) Scan é um serviço que analisa arquivos suspeitos e proporciona uma rápida detecção de vírus, worms, cavalos de tróia, e todos os tipos de arquivos maliciosos detectados por vários mecanismos de antivírus Ok, e como eu faço ele? Primeiro você deve ir ao site http://www.virustotal.com/pt/ Ok, agora lá terá uma tela assim: Primeiro clique em Browse (Procurar, Arquivo, algo ae do seu navegador) e ache o OT que você baixou e clique ok. Agora, clique em Enviar arquivo (Siga os numeros da Imagem) E espere seu scan se concluir. Se o arquivo estiver limpo estará assim como nessa imagem: Bem, você verá se tem algo escrito no scan em VERMELHO se tiver escrito em vermelho é porque está contaminado. Mas se não houver nenhuma escrita em vermelho, pode baixar sossegado. Pronto agora você já sabe como se faz um scan! Agora, NUNCA receba OTs pelo MSN. Aqui segye o exemplo de como reagir e como NÃO reagir no MSN quando lhe enviarem um OT. Como não fazer! Atitude Errada! Como fazer! Atitude correta! Siga sempre o exemplo correto para que tudo corra bem. Se você fizer isso, os riscos são quase 0%! Agora, se você for abrir o OT e aparecer o antivírus adoidado, desse jeito: Você deve procurar imediatamente uma ajuda para saber se é mesmo um vírus ou uma DLL não reconhecida! Se for uma DLL não reconhecida, não há o que temer. Mas se for um vírus é melhor dar um jeito logo. Se você não tem experiência necessária para fazer esse procedimento sozinho, nem tente porque pode ser pior para você! Utilize nossa seção de suporte quando isso acontecer LINK: http://www.xtibia.com/forum/index.php?showforum=4 Agora iremos para a parte final do tutorial. Sempre antes de clicar no link, verifique se aquele link é o mesmo que está escrito ali. Mas como assim? Se eu for clicar no link ele terá que ser o que eu cliquei lol. Não necessariamente! Você pode clicar em um link que na verdade esconde outro. Mas como eu vou saber então? Basta você por o ponteiro do mouse em cima do link que irá clicar e olha na parte inferior esquerda do seu navegador o link que aparece. Se for diferente, nem clique que com certeza é treta! ------------------------------- Então galera, mais um tutorial que fica por aqui, Espero que tenham gostado. E que agora vocês tenham mais cuidados na hora de fazer downloads de OTservers! 100% por LastSoulS XTibia, a sua comunidade de Tibia e OTserv. 2008
    1 ponto
  19. Por favor onde fica esse > creatureevents ??? no meu só tem global events e creaturescripts e outra coloque ino creature scripts as coisas e na hora da isso >> Invalid subtopic. Can't load page. Grato aguardo resposta! OOObrigado!
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...