Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''script''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. meubk

    Auto Target

    autotarget.xml: [LUA]<?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Auto Target System" version="1.0" author="xOtservx" enabled="yes"> <event type="login" name="AutoTargetLogin" event="script"><![CDATA[ function onLogin(cid) return registerCreatureEvent(cid, "AutoTarget") end]]></event> <event type="think" name="AutoTarget" event="script"><![CDATA[ function onThink(cid, interval) if getPlayerStorageValue(cid, 25471) ~= "on" then return true end if getCreatureTarget(cid) then return true end local monsterScreen = {} for x = -7, 7 do for y = -5, 5 do creature = getTopCreature({x = getThingPos(cid).x + x, y = getThingPos(cid).y + y, z = getThingPos(cid).z}).uid if isMonster(creature) then table.insert(monsterScreen, creature) end end end if #monsterScreen == 0 then return true end monsterTarget = #monsterScreen[1] if #monsterTarget > 1 then local type = type(getPlayerStorageValue(cid, 25472)) ~= "string" and "distancia" or getPlayerStorageValue(cid, 25471) for i = 1, #monsterScreen do if type == "distancia" then if getDistanceBetween(getThingPos(monsterScreen[i]), getThingPos(cid)) < getDistanceBetween(getThingPos(monsterTarget), getThingPos(cid)) then monsterTarget = monsterScreen[i] end elseif type == "forte" then if getCreatureMaxHealth(monsterScreen[i]) > getCreatureMaxHealth(monsterTarget) then monsterTarget = monsterScreen[i] end end end end doMonsterSetTarget(cid, monsterTarget) return true end]]></event> <talkaction words="!autotarget;/autotarget" event="buffer"><![CDATA[ function onSay(cid, words, param) if param == "on" then setPlayerStorageValue(cid, 25471, "on") return doPlayerSendTextMessage(cid, 27, "Você ligou o sistema de auto target, configure ele para !autotarget distancia ou !autotarget forte .") elseif param == "off" then setPlayerStorageValue(cid, 25471, "off") return doPlayerSendTextMessage(cid, "27, Você desligou o sistema de auto target.") elseif param == "distancia" or param "forte" then if getPlayerStorageValue(cid, 25471) ~= "on" then return doPlayerSendTextMessage(cid, "27, Você precisa estar com o sistema de auto target ligado (!autotarget on)") end setPlayerStorageValue(cid, 25472, param) return doPlayerSendTextMessage(cid, "27, Você trocou o modo do auto target para " .. param .. ".") end end]]></talkaction> </mod>[/LUA] coloque o xml na pasta mods do ot. comandos:
  2. DudaLima

    [8.60] Global Com Tps

    Ae galera to aqui pra postar um OT que varias pessoas me pediram que é o Global com TPS sem nenhum Bug. Um servidor que usa ele é o Confidence World bem conhecido #Descrição: Esse servidor é considerado inovador no mundo do otserver, pois é uma nova modalidade de servidor global, muito famoso entre os players. Possui muitos adeptos e, dificilmente, é encontrado um servidor adaptado a este mapa com poucos players. Difere-se do Global TPS em relação à quantidade de sistemas. #O que possui? - War of Emperium (Evento) - Dota Conquest (Evento) - Coliseum Arena (Evento) - Vip Test (Script) - Bonus 50+ (Script) - Database completa (DB) - TFS 0.4 (Distro: Anti-Divulgação, War System e No-otbm check) - Task 80% RL (Script: Com ranking e bonus bosses) - War System com escudos (Script) - VIP System (Script) - 2 cidades VIP Oken e Gengia (Mapa) - 10 items VIPS (Script) - +150 teleports free (Mapa) - Entre outras coisas... *OBS: Este servidor só funciona em S.O. Windows ou Linux com +3GB de RAM Download Bom, é isso, espero ter ajudado vocês. Créditos: Eu:DudaLima WarWolf
  3. Por exemplo o player loga e fica 1 hora online ele ganha uma "Water Stone" Fica 2 horas onlines uma "Box 1" Porem se ele deslogar o tempo é resetado para 0 denovo
  4. Olá Gente hoje vim denovo aqui Para postar uma Nova Action essa Funciona 100¢ Primeiro Vai na Pasta Actions,Actions XML Actions Xml = <action actionid="7100" script="alavanca.lua"/> Crie um arquivo.lua Chamado - Alavanca.lua Coloque Isso: -- annihilator level 200 lever function onUse(cid, item, frompos, item2, topos) if item.uid == 7100 and item.itemid == 1946 then player1pos = {x=161, y=46, z=4, stackpos=253} < Local Aonde Player Vai Fica (Exclui Essa Frase Nao ESQUEÇA) player1 = getThingfromPos(player1pos) player2pos = {x=161, y=47, z=4, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=161, y=48, z=4, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=161, y=49, z=4, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then queststatus1 = getPlayerStorageValue(player1.uid,7100) queststatus2 = getPlayerStorageValue(player2.uid,7100) queststatus3 = getPlayerStorageValue(player3.uid,7100) queststatus4 = getPlayerStorageValue(player4.uid,7100) if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then nplayer1pos = {x=160, y=54, z=7} < lOCAL AONDE PLAYER VAI APARECER TIRA ESSA FRASE nplayer2pos = {x=160, y=54, z=7} nplayer3pos = {x=160, y=54, z=7} nplayer4pos = {x=160, y=54, z=7} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid,"Somebody in your team has already done this quest.") end else doPlayerSendCancel(cid,"You need four players for this quest.") end elseif item.uid ==7100 and item.itemid == 1946 then if getPlayerAccess(cid) > 0 then doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end else return 0 end return 1 end - Depois Você Abre Seu Remeres,escolhe um um lugar e coloca os Tiles ,e uma alavanca Com id de 1946 Nao coloca de 1945 que não vai pegar. - Depois Você clica Propriedades Action ID : 7100 Unique ID : 7100 Aperta "OK" Pronto. Atençao: Não esqueça de muda os position Qualquer duvida só posta eu vô responder a todos. Creditos: A Min pois eu tirei uns bugs que dava no mapa,Mais eu devo muito a um script já estava em um Baiak.
  5. Tipo do script: Item Exclusivo para jogador (Unique) Protocolo (versão do Tibia): 8.54 Servidor utilizado: PkeDash Nível de experiência: Medio Adicionais/Informações: Ola gostaria De um sistema que funcionasse da seguinte Maneira Jogador recebe Um item em 1 guest que nao pode ser trocado ou jogado no chão. OBS: Ja tenho os itens estão Prontos e separados a guest que dara o item tbm esta pronto, oque esta faltado é um jeito de bloquear esses itens para troca e drop. Id: 12578 nome: Unique Ruby Id: 12579 nome: Unique Potion Id: 12580 nome: Unique Stamina Quando o jogador receber algum desses itens de um bau ele nao poderá trocar nem jogar no chão Darei Rep COm Orgulho
  6. Olá galerinha do Xtibia, estou aqui para postar um bom servidor derivado. Não queria estar postando esse servidor meio que forçado, tendo em vista que foi roubado e tem gente por de trás ganhando dinheiro sujo. Então sem mais delongas, ai esta o NtoShinobi que esta sendo vendido por alguem popular aqui do forum, que prefiro não citar o nome. ------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------ Mapa do servidor conta com 4 vilas -Amegakure -Suna -Mist -Konoha Consta com 14 vocações -Naruto - Sasuke - Sakura - Rock Lee- Neji - Hinata - Kiba - Shikamaru - Tenten - Gaara - Killer Bee - Kakashi - Itachi - [sistema de Graduação] -Genin -Chunin -Jounin -Anbu [sistema de Saga] -transformar -reverter -Serve para trocar a roupa do seu persoangem, ganha umas roupas novas a cada 25 level upado, dependendo da vocação, isso varia muito. -Exemplo, Naruto tem umas 10 roupas, enquanto tenten tem apenas 4. Nada afeta ao personagem, apenas visualmente mesmo. -Caso deseja alterar para ter efeito em alguma coisa, você pode editar em vocations.xml [sistema de Recompensa] -Npc Oinin coloca a cabeça de jogadores a venda por um determinado preço, e se alguem matar o jogador que tem recompensa ganha algo em troca. [Eventos do Servidor] -Evento Guerra Ninja -Evento Assassin -Evento Roube a Bandeira -Evento Tsuki no Me [sistema de Jutsus] -Posso dizer que todos os jutsus são adequados com o anime NARUTO, dando mais realidade no jogo de naruto. -Exemplo, chidori do sasuke, o personagem ao relizar pula até o jogador para acertar o jutsu. [boss] -Tem o enrredo da historia, ao qual deve matar os Boss do jogo, que na verdade são os membros da Akatsuki. -Cada Boss se encontra em uma parte do mapa, logo abaixo vai ter os detalhes do Mapa! [Task] -Npc Anbu, ele se localiza acima dos trainers, ele realiza as famosas task do opentibia no naruto. Bom.. O melhor mesmo é vocês abrirem e verem do que estou falando, e se adequarem ao jogo. =) Algumas imagems: Desde já aviso, que um bom dedicado é o começo para tudo. Eu iniciei o projeto com dedicado fracos, o que causava lag e kicks. Na minha humilde opnião, a ServerSoft é uma boa empresa de host para opentibia, tendo em vista que a equipe da mesma tem conhecimento com o mundo Opentibia. É isso ae galera, conforme o tempo eu estarei postando umas atualizaçõezinhas Link do download - Atualizado dia 29/03/2013 Updates Não irei mais atualizar o servidor por enquanto, pois existem muitos ladrões de conteudos e créditos no forum, então por hora ficara assim. LINKS PARA INICIANTES Para quem nunca criou um servidor de uma pesquisada na area de iniciantes clicando aqui. Para saber como criar um client proprio clique aqui. Ou então entre no site http://vapus.net/customclient e crie por la mesmo. E claro, todos os devidos créditos pelo projeto, mesmo sendo um único script. Naruto Open Wings v1.2 {o começo de tudo} Lks {RobinHood} Jhon992 Eskylo Vodkart Demonbholder Oneshot Slicer SkyMagmum Kydrai Christian Letti LuckOake Acredito que tem os créditos de todos(msm sendo 1 script.lua), mesmo aqueles que nem sabe que ajudaram. Caso faltou alguem é só falar =)
  7. Boa noite, Estou vindo aqui pedir ajuda para ajustar esse script, ele está funciona normal (No game) O Look fica assim You see Android (Level 922). He is an new elder druid. He is Member of the Endless order. [Frags: 38], [Critical: 0], [Dodge: 46] ele contabiliza a Critical e a Dodge de cada player porem no console é outra coisa [24/4/2020 3:19:23] [Error - CreatureScript Interface] [24/4/2020 3:19:23] data/creaturescripts/scripts/fraglook.lua:onLook [24/4/2020 3:19:23] Description: [24/4/2020 3:19:23] (luaGetPlayerNameByGUID) Player not found Fica dando este erro alguem tem a noçao de como solucionar este problema ?
  8. -| Baiak Barão -| Novo Visual do Templo -| Task System -| Dodge System -| Run Event (CORRIDA MALUCA) -| War System (100% RODANDO EM SQLITE) -| PvP Balanceado -| Varios Eventos Automaticos -| Battle Field Event -| Capture The Flag Event -| Adicionado CASTLE 24HORAS (COM CASTELO) e AVISOS DE INVASORES -| Itens DONATES -| Área DONATE ~~ (Só Entra Quem Usar o Itens) -| Vários Novos Script -| Fast Atk Arrumado -| Distro 0.4 Rodando 100% ( Se For 64x Bits) -| Refinamento ( Aprimora seu Item ) -| Frags no Look -| Npc Major Ancient (Vende Itens Exclusivos para quem tiver honor points) Obs:Consegue no GFS) -| Fly System Adicionado fale !fly -| e Muito Mais que Não Lembro -| CONFIRA ~~ ! Foi Adicionado na V2: -| Critical System -| House Clean Automática System (Toda Vez que o server é reniciado, ele dá clean nas houses que o player ficar inativo a 3 dias. Pode ser configurado na Pasta Mods no Script : HouseClean.) -| Looking At You System (Quando Player dá look em outro player mostra emcima do chat. -| Auto Loot System System (O Dinheiro vai direto pro NPC Banqueiro) -| NPC Banqueiro-Sem bugs Oque foi Removido na V2: -| Removi Alguns bugs e erros que existia na distro -| Removi Alguns NPC como : Major Points , Vip Amulet. -| Removi o Sistema de Guild Frag System pois estava bugado -| Removi o Sistema de Reflect que Bugava algumas coisas no servidor OBS:EU modifiquei a distro. Então essa distro não tem Cast System, e removi tb o Points system... Foi Corrigido o Bug de salvar o character, e o do account manager não dá mais password invalid na account. -| Download http://www.4shared.c...Barao__1_.html? -| Scan https://www.virustot...sis/1402686644/ -| Créditos LuanLuciano Juliok80 Fernanda.k2 LeozeraRox Alpha DeathRocks Larisa44
  9. Bom dia, estou com um problema com esse script, ele funciona corretamente, mas recebo um erro no console ao tentar vender itens dentro de contêineres [7/4/2020 12:59:12] [Error - Action Interface] [7/4/2020 12:59:12] data/actions/scripts/lootbox_novalis.lua:onUse [7/4/2020 12:59:12] Description: [7/4/2020 12:59:12] (luaGetThing) Thing not found alguém pode me ajudar?
  10. Changelog V1.0 Cidades + Carlin + Thais + Npcs nas cidades igual o global e alguns editados + Sistema de Addon Igual Global + Items de Addons Compra no Npc Bulma,todos com preços reformulados,para dificultar mais ainda ao fazer os addons + Sistema de Parcel para as Cidades 100% Quests + Desert Quest + Banshee Quest + Firewalker Boots Quest + Hota Quest + Anihilator Quest + Pits of Inferno Quest + Inquisition Quest + Yalahar Quest + Demon Helmet Quest + Demon Oak Quest + The Epiphany e Winged Helmet Quest [new] + Solar Axe e Great Shield Quest [new] Teleportes + 30 Teleportes hunts igual o Global + Teleportes de Demons e Heros Aumentados + Apenas Teleportes das Hunts mais usadas + E algumas hunts melhoradas Sistema Premium[VIP] Ao Inves de Fazer um Sistema Vip,pensei em usar a premium mesmo,com ela você pode ter acesso a nova cidade Premium[VIP] + Premium[VIP]comprando pelo !buypremium [Valor 5kk] + Acesso a Area Premium Pelo Npc Premium Teleporter + Troca de Sexo + 38 Teleportes para hunts + Hunts com respaw de 30 segundos + Sistema de Trainers com 4 Trainers com Fast Ataque + Varias Houses grandes espalhadas pela cidade + Hunts,a maioria areas grandes V1.3 Reformulado area,de teleportes Arrumado o tp de thais para os trainers que estava bugado Arrumado 2 erros de spawn,que apareçia quando iniciava o ot Arrumado alguns erros no mapa Bk Quest Adcionada Fibula Quest Adcionada Bs quest Adcionada Noble armor quest adcionada Mapa size almentado para 4200x4200 Bug dos Amuletos e rings infinitos arrumados Bug do Aol agora funcionando V1.7 Corrigido bugs no mapa Adcionada Cidade Farmine Adcionada Cidade Yalahar Area de Quests reformulada Area das Cidades reformudala Alterado level inicial,agora começa level 8 Alterado equipamentos iniciais Alterado level nas portas das quests igual global Reconpensa da yalahar quest igual global Quase 300 houses sistema de buy aol,fale !buy aol e vá até a ilha do Eremo sistema de Quest look(de look e veja quantas quests tem feita) BY Saymon14 retirado npc que vendia amuletos e rings Reformulada algumas Quests Teleportes da Poi,todos corrigido Npc que vendia amuletos e rings,retirado Revisão no script da quest de fibula Arrumado o Comando !frags Stone Skin Amulet 80% diminuido para 10% de protect V2.4 + Corrigido corpos de alguns monstros + Corrigido pequeno bug nos trainers + Corrigido um item de addon no npc Varkhal + Corrigido pequeno bug no teleport de dragons da area vip + Corrigido porcentagem da penalidade de morte + Corrigido bug da spear,agora ela não quebra + Adcionado hunt Orcs + Adcionado novos items no npc Bulma + Adcionado Hunt Trolls + Adcionado mais monstros no buero de carlin + Adcionada Cidade Ab'dendriel + Adcionado Trainers 2 + Adcionado Npc Lector nos trainers(food seller) + Adcionado comando para formação de guilds + Area De dwarfs Adcionada (dwarf mines) + Area de cyclops adcionada + Area de Amazon Adcionada (amazon camp) + Expanção na Area de Teleportes + Orc Fortress Quest Adcionada + Templo de Thais Reformulado + Teleport para Thais arrumado,vai para o barco como os outros V2.7 sistema de recompenças ao alcançar tal level Alguns bugs no mapa corrigidos talkaction de rank alterado para um melhor Systema de Parcel corrigido,todos dps corrigidos de acordo com sua city Principais Djins Adcionado,Nah'Bob e Alesar Npc que repara firewalker boots adcionado Debugs que ocorriam no god ao trocar outfit corrigidos Corrigidos alguns erros na area de teleport Nova Cidade Darashia Adcionada Hunt de Minotaurs Adcionado Hunts de Macacos Adcionado Vampire Quest Adcionada Blue legs Quest Adcionada V3.0 + Todos items vip players apartir do level 8 podem usar + Sistema de Guilslist,sabia quais as guilds do servidor,e quem esta em sua guild(by Vodkart) + !online inovador modificado (by gustavo010) + Bug das runas corrigido + Novo distro mix Yourots + Corrigido Items que caia ao criar novo knight + Adcionado Tortoise hunt(liberty bay) + Adcionado Pirate hunt(liberty bay) + Adcionado Earth Elemental hunt(edron) + adcionado demon hunt(edron) + Adcionado Cyclops hunt(edron) + Adcionado Grim Reaper e Nightmare hunt(yalahar) + Adcionado Adept of the Cult hunt(yalahar) + Adcionado Demon hunt(yalahar) + Adcionado Demon hunt 2(yalahar) + Adcionado Mutated Bat hunt + Adcionado Worker Golem hunt + Adcionado Behemoth hunt + Adcionado Behemoth Quest V3.4 + Nova Quest Wrath of the Emperor/The New Frontier Quest[tudo uma só] + Corrigidos alguns erros no mapa + Adcionado Pz em algumas locais de npc + Adcionado efeitos na hora de up level + Adcionado addons nos npcs de carlin + Pequenas Edições no mapa + Dialogo de todos Npcs foram revisados e alterados + Novos Efeitos nos Teleportes + Corrigido cap do knight + Corrigido addons do outfit warmaster + Corrigido pequeno erro no distro quando god logava + Novo Sistema,mostando Top Frags online[!topkill] + Novo Evento Blood Castle[sim igual do Mu] + Revisado comando de comprar aol,agora pode usar [!aol !buyaol] + Revisado script de comprar bless + Sistema de Refinamentos de Items Adcionado + Database corrigida,sem erros,podendo deletar contas,players,etc.. + Novo Templo,mais espaçoso + Pasta globalevents,certos arquivos mudados,outros sem uso deletados + Mais um efeito na hora de morrer xD + Todos npcs que vendem joias,fora retirados,para evitar bug de money + Corrigido bug do npc que recarrega firewalker,agora ele recarrega mesmo + Adcionado novo mapa para wars,opens[não perde level ao morrer] V3.6 + Mais 2 npcs djins adcionados + Nova sala de Treiners + Templo com mais detalhes + Corrigido a venda de aol no eremo + Agora Premium é de Graça + Adcionado Sistema de VIP (by Vodkat) + Adcionado Exp para VIP (by vodkat) + Adcionado Cidade Venore + Corrigido pequenos bugs do mapa + Distro Limpo,sem Erros + Nova entrada para Area Vip + Players Vips ganha,[Vip]no nome + Corrigido Depot de Liberty Bay V4.0 + Vip retirada + Adcionada Cidade Port Hope + Adcionada cidade Edron + Adcionada Cidade Ankrahmun + Adcionada Cidade Svargrond + todos npcs das cidades igual global + Todas Houses das novas cidades Corrigidos + Alguns Bugs do mapa Corrigidos + Distro Limpo sem erros V4.2 + Npc Oldrak vendendo hallowed axe + Retirado Todos npcs de bank e joias para evitar bugs com grana + Cidades Registradas no Town ID + Depot de todas as novas Cidades Corrigidos + Bug de Grana do Rashid corrigido + Corrigido cordenada do teleport para sala das Cidades + Bugs do Mapa + Novo Distro Distro Fixe V4.3 [09/01/2012] V4.3 + Retirado distro da Styller Yourots [muito virus] + Adcionado Distro Antigo da Mix Yourots Créditos. Créditos: EddyHavoc (Edição e Publicação) Soldoran (Criação Base) Mix Yourots (Distros) Download Clique Aqui Scan Aqui
  11. Evollutions

    Magia stun

    Ola pessoal, estou precisando de um script de spell, já testei alguns e todos deram erro. Meu servidor é um baiak 10.90, tfs 1.0 Queria uma magia que funcionasse como stun (incapacitar) durante x segundos, e que o target incapacitado não consiga andar nem usar magias/runas. E se não for muito trabalho, uma variação da mesma spell, mas em área (na mesma área do exori). Edit: esqueci de dizer que tem que ter CD de 1 min Obrigado desde já!
  12. Boa galera eu mais uma vez trazendo comodidade e algo seguro pra nós. Esse sistema VIP do Mock foi modificado e aptado em alumas partes dos scripts, para um funcionamento correto e com isso tivemos a ajuda dos scripts, Doidin, Luke sky walker e por min por ter ido atraz de todas as soluções pra completa algo incompleto. Vamos nois: 1° Acesse a pasta data/lib copie la um arquivo.lua e renomeio para 049-vipsys.lua, após isso apague tudo dentro desse arquivo e adicione este coder: vip = { name = "Vip system"; author = "Mock"; version = "1.0.0.0"; query="ALTER TABLE `accounts` ADD `vip_time` INTEGER"; query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL" } function vip.setTable() dofile('config.lua') if sqlType == "sqlite" then db.executeQuery(vip.query) else db.executeQuery(vip.query2) end end function vip.getVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; ae = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';") if ae:getID() == -1 then return 0 end local retee = ae:getDataInt("vip_time") or 0 ae:free() return retee end function vip.getVipByAcc(acc) assert(acc,'Account is nil') local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';") if a:getID() ~= -1 then return a:getDataInt("vip_time") or 0, a:free() else error('Account don\'t find.') end end function vip.setVip(cid,time) dofile("config.lua") assert(tonumber(cid),'Parameter must be a number') assert(tonumber(time),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';") end function vip.getVipByAccount(acc) assert(acc,'Account is nil') return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0 end function vip.hasVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) or 0 if os.time(day) < t then return TRUE else return FALSE end end function vip.hasVips(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) if os.time(day) < t then return TRUE else return FALSE end end function vip.accountHasVip(acc) assert(acc,'Account is nil') if os.time() < vip.getVipByAccount(acc) then return TRUE else return FALSE end end function vip.getDays(days) return (3600 * 24 * days) end function vip.addVipByAccount(acc,time) assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') local a = vip.getVipByAcc(acc) a = os.difftime(a,os.time()) if a < 0 then a = 0 end; a = a+time return vip.setVipByAccount(acc,a) end function vip.setVipByAccount(acc,time) dofile("config.lua") assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';") return TRUE end function vip.returnVipString(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == TRUE then return os.date("%d %B %Y %X ", vip.getVip(cid)) end end 2° Abra a pasta data/creaturescrpits/scripts copie la um arquivo.lua e renomeio para vip.lua, dentro dele adicione: By Lukeskywalker function onLogin(cid) local temple = { x =32369, y = 32246, z = 6} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,55555) ~= 1 then setPlayerStorageValue(cid,55555,1) end else if getPlayerStorageValue(cid,55555) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Your VIP Time over!") db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid))..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 55555, 0) end end return true end Você pode troca as coordenadas do templo: local temple = {x=32369, y=32246, z=6}. 3° Em data/creaturescripts/scripts/login.lua adicione essas tags: registerCreatureEvent(cid, "FimVip") registerCreatureEvent(cid, "VipReceive") 4° Em data/creaturescripts/creaturescripts.xml adicione está tag: <event type="login" name="FimVip" event="script" value="vip.lua"/> 5º Em data\movements\scripts copie la um arquivo.lua e renomeio para viptile.lua e adicione este coder dentro do mesmo: function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "You need to be a vip player to access this area.", enterMsg = "Welcome to vip area!", enterEffect = CONST_ME_MAGIC_RED, } if isPlayer(cid) == true then if vip.hasVip(cid) == FALSE then doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerSendCancel(cid, tileConfig.kickMsg) return end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return true end end 6° Em data\movements\movements.xml adicione a tag: <movevent type="StepIn" actionid="13500" event="script" value="viptile.lua"/> Vejam a numeração 13500 você irá usar no tile que você quer para a passagem de player VIP para configurar adicione a numeração em ActionID do tile. 7° Em data/talkactions/scripts acrecente dentro da pasta scripts uma outra pasta com o nome VIP vamos precisar de 7 arquivos.lua quem teram os nomes e coder a seguir: add.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Added "..param.." Vip Days.") return doPlayerAddVipDays(cid, param) end addvipp.lua function onSay(cid, words, param) if param == "" then return doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar vip:\n/vip add days player\n/vip add 30 Real\n---------------\nDeletar vip:\n/vip del player\n/vip del Real\n---------------\nVer a vip:\n/vip see player\n/vip see Real\n---------------\n") end if param:lower():find('add') == 1 and 3 then local _,_,id,name = param:lower():find('add (%d+) (.+)') name = name or "" id = tonumber(id or 1) or 1 if tonumber(id) == nil or getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Adicionar vip:\n/vip add days player\n/vip add 30 Real\n[Player: "..name.."]") end if isPlayer(getPlayerByName(name)) == TRUE then vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,vip.getDays(id)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Foram adicionados "..tonumber(id).." dias de vip a "..name..".") doPlayerSendTextMessage(getPlayerByName(name),MESSAGE_INFO_DESCR,"Você recebeu "..tonumber(id).." dias de vip.") else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,name.." não esta online ou não existe.") end elseif param:lower():find('del') == 1 and 3 then local _,_,name = param:lower():find('del (.+)') if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Deletar vip:\n/vip del player\n/vip del Real\n") end vip.setVipByAccount(getPlayerAccount(getPlayerByName(name)),-os.time()) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"A vip de "..name.." foi apagada.") elseif param:lower():find('see') == 1 and 3 then local _,_,name = param:lower():find('see (.+)') name = name or "" if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Ver a vip:\n/vip see player\n/vip see Real\n") end local ret_ = vip.getVip(getPlayerByName(name)) if ret_ == 0 then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,name.." Não tem vip, e nunca teve.") else return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A vip de "..name.." Acaba/terminou em "..os.date("%d %B %Y %X ",ret_)) end end return TRUE end get.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, ""..getPlayerVipDays(cid).." days VIP left.") end is.lua function onSay(cid, words, param, channel) if isPlayerVip(cid) == TRUE then doPlayerSendCancel(cid, "You are a VIP player.") else doPlayerSendCancel(cid, "You are not a VIP player.") end end removevip.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Vip removed.") return doPlayerRemoveVip(cid) end set.lua function onSay(cid, words, param) if vip.hasVip(cid) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your vip end in "..os.date("%d %B %Y %X ",vip.getVip(cid))) else if vip.getVip(cid) ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. Your vip has finished in "..os.date("%d %B %Y %X ", vip.getVip(cid)).." and now is "..os.date("%d %B %Y %X ", os.time())) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. You naver has a vip.") end end return TRUE end 8°Em data/talkactions/talkactions.xml adicione está tag: <!-- VIP System --> <talkaction log="yes" words="/vip" access="5" event="script" value="VIP/addvipp.lua" /> <talkaction words="!vipdays" event="script" value="VIP/vipdays.lua" /> 9° Para finalizar execute este comando na sua database na tabela accounts: alter table `accounts` add `vip_time` INT NOT NULL; Bom galera fim este sistema vip adiciona os dias corretos e ao termino do VIP o player recebe a menssagem que o VIP acabou é teleportado pro templo porque se no caso ele estiver na área VIP essa é uma saida e zera a coluna vip_time. Creditos: Mock (por ter iniciado algo e não terminou) Lukeskywalker (Sistema de finalização perfeito do vip.) Natan Beckman (Por ter ido atrás a conclusão 100% in game e php)
  13. Boa noite povo do xTibia, vim pedir se alguém pode me passar script que faca exatamente isso > cor de novo fosse azul.. se alguém tiver agradeceria Muito obrigado até mais..
  14. Fala XTibianos,estou encinando a voces neste tutorial a como editar seu SHOP no ModernACC,bom vi muitas pessoas com este problema,mais em especial vim fazer este tutorial para meu querido amigo josegremista. Bom vamos começar Primeiramente,vá no banco de dados. Se voce esta usando um computador local,provavelmente será acessado por[url="http://localhost/phpmyadmin"] localhost/phpmyadmin.[/url] Se voce esta usando um dedicado/vps voce poderá usar tanto localhost/phpmyadmin quanto seuip.servegame.com/phpmyadmin. Depois de ter acessado o banco de dados vá em sua database e localize a tabela shop_offer.Conforme mostra a figura abaixo: Abra a tabela shop_offer e vc vai ver que vai ter alguns itens adicionados.Bom agora vamos ao que intereça. Para adicionar itens no SHOP voce segue a imagem abaicho. Depois embaixo desses ai. Description - Poem uma descrição do item. Name - Nome do item. OBS:esses dois itens vao aparecer junto no SHOP. Depois disso é so ir em executar e deu pessoal. Para quem nao intendeu muito bem no começo a parte do shop_offer Bom estou disponibilizando minhas 3 tabelas de shop. shop_offer shop_history shop_donation_story Bom é isso ai amigos.Se gostaram do tutorial nao esqueçam de dar um rep ai. Créditos: Mozark001
  15. Ola cansados de serves inuteis???? que tal 1 legal??? informaçoes:Maximo de 6 PB o resto vai pro DP 100% Nova Pokedex: 100% Seu pokemon ganha mais life por level 100% Sistema de fraqueza 100% Pokemons passivos 100% Surf 100% Fly 100% Ride 100% Catch 100% Stones System (Alguns evolutem com 2 stones, alguns tem chance de evoluir pra shinys) 100% Move System 100% -- Order Button (Hold position .h) Teleport,Dive System 100% Dig Sys, Flash Sys, Blink Sys, Blink 2 para pokemons mais fortes, Rock Smash Sys, Cut Sys -- 100% order Fishing 100% (balanced) Loot de pokemons como Svke. M1~M12 100% Novos items: Rare candy, exp potion, novos loots. 100% 155 pokemons, raids de pokemons lendarios. 100% Mais de 20 quests e subindo. 100% Sistema de promocao, elite trainer e master trainer. 10%(pois irei fazer o npc de vocação pra quando rebornar escolher a vocaçao ) Cassino 100% Safari zone 100% Utilitarios, Arvores dropam sementes, tochas acesas com essence of fire. 100% Ranking, comando !rank. 100% Mapa, 98%(tem umas areas que se baseião na svke mais não e pareçido e tambem tem hunts faltando mais ireu colocar) svke, houses 100%, spawns 100%, quests 60%. Box 1-4, 100%. Fight arena de Fuchsia, 100%. Pokebags e pokebackpacks, 100%. Diamonds e small diamonds dropando de bixos. 100% Npc de anuncio para todo servidor, NPc ajudante. 100% Poke food, revive, Ultra potion 5x. 100% Evento inicial, a cada 2 horas pegue um premio no cp (random entre xp potions e rare candys).100% sistema !reborn(ao chegar level 150 fale !reborn e volte para level 15,e volte pro level 15) Link de Download: http://www.4shared.com/file/oVk0NVgY/Nova_pasta.html Link de Download do Catch Full: http://www.4shared.com/file/Olh3uExD/catch.html mapa: http://www.4shared.com/file/CVvg5lJ2/Mapa.html boa sorte! Suporte:Dash credito: http://poketibiatuto...s.blogspot.com/ olha voce tem que pegar e por o catch full e trocar o mapa e esse serve e do gbziin entao eu quis postar pra voces o creditos tambem e do: http://poketibiatuto...s.blogspot.com/ entrem blogpost muito bom eu apoio pois so muito amigo do dono ------------------------------------------------------------------ Da Reply plis PS:O serve esta na versão 1.0 esse serve é do gbziin mais eu irei editar ele pra ter o suporte do gbziin e muitas coisas editadas minha e lembrente tem vagas: script (1) mapper(1) Spriter(2) e hoster(1) /\isso a cima é pra criar um serve ok?
  16. Olá a todos, vim pedir um script para vocês.. O script é o Level System para base baseada em OTP.. O script que to pedindo é meio assim.. Alakazam Lv100 /OU/ Alakazam [100] se for possivel - quero que quando mata algum poke apareça em algum lugar quantos de xp recebeu (é tambem se não for encomodo quantos falta de xp pra upar) o script pode ser o mais basico, se tiver essas informaçoes ficarei muito grato. Obrigado a todos
  17. Olá povo do xTibia desculpe qualquer coisa vim pedi um favor/sugestão algo desse tipo para vocês, estou querendo certas coisas se for possível 1: uma base OtPokemon C/S Source Server e Client que dá pra ver futuro nela se for trabalhada bem (Pode ser com trap ou não) Exemplo OtPokemon XYZ, Pokezring,pokeroxy e tals (que possa adicionar script de *PokeBar*/*PokeInfo*/*E Etc 2: um level system parecido com o do OtPokemon, que já pode ser ativada no jogo mas para ficar melhor precisa ser editada e tals 3: um launcher básico C/S autoupdate que tenha arquivos para mecher nele no visual Basic {Poketibia} 4: Uma pessoa que possa me falar onde tá os arquivos da PokeBar do OtPokemon XYZ que foi disponível nesse fórum [\] (Pasta do module >selectPokemon) No entanto é só isso desculpem fazer muito pedido mas é porque vou trabalhar sozinho no projeto, O maximo de ajuda que for possível irei agradecer se não for tudo bem,obrigado
  18. Monster Hunter Event Como não tive tempo para trazer um script semana passada, criei um bem legal para essa semana. Para ver os outros scripts de terça, clique aqui. Vídeo demonstrativo: Explicação detalhada: O evento possui duas versões: automática (globalevent) e manual (talkaction). Quando o evento inicia, é sorteado um monstro e um intervalo de tempo, por exemplo: Hydra e 15 minutos. Seguindo esse exemplo, os jogadores terão 15 minutos para matar hydras, no final dos 15 minutos, aquele que tiver matado mais hydras será o vencedor e receberá um prêmio. - É tudo configurável. Instalação: Crie Monster Hunter.lua em data/creaturescripts/scripts e coloque: -- Monster Hunter Event feito por Killua, XTibia.com function onKill(cid, target, lastHit) if isPlayer(cid) and isMonster(target) then if getCreatureMaster(target) ~= nil then return true end local name = getGlobalStorageValue(1919211) if string.lower(getCreatureName(target)) == string.lower(name) then doPlayerSetStorageValue(cid, 1814210, getPlayerStorageValue(cid, 1814210) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Monster Hunter Event] Voce ja matou "..getPlayerStorageValue(cid, 1814210).." "..name.."s! Continue matando para ser o vencedor!") end end return true end function onLogin(cid) if getGlobalStorageValue(1919211) == 0 then doPlayerSetStorageValue(cid, 1814210, 0) end registerCreatureEvent(cid, "Monster Hunter") return true end Em data/creaturescripts/creaturescripts.xml adicione essas TAGs: <event type="kill" name="Monster Hunter" event="script" value="Monster Hunter.lua"/> <event type="login" name="Monster Hunterl" event="script" value="Monster Hunter.lua"/> A próxima parte irá depender de qual versão escolher Versão manual (talkaction) Versão automática (globalevent) Configuração: local monsters = {"Demon", "Rat", "Hydra", "Dragon Lord", "Ancient Scarab"} -- Monstros que podem ser sorteados local time_min, max = 10, 15 -- Em minutos local premios, gold = {{2160, 10}, {2157, 5}}, 10000 -- {id do item, quantidade} que o jogador ganha e quantia de gold Em monsters, coloque o nome dos monstros que poderão ser sorteados no evento. Em time_min, max, coloque o tempo mínimo e o tempo máximo de duração do evento. em premios, gold adicione os itens e a quantidade de gold que o vencedor receberá (seguindo o modelo apresentado). TAG no Globalevents.xml (versão automática): <globalevent name="Monster Hunter Event" interval="3600000" event="script" value="Monster Hunter.lua"/> interval é o intervalo entre as execuções do evento, coloquei 3600000, que equivale a 1 hora (1000 = 1 segundo). Se seu servidor NÃO for em milissegundos, use 1 = 1 segundo, logo 1 hora = 3600. TAG no Talkactions.xml (versão manual): <talkaction log="yes" access="5" words="/monsterhunter" event="script" value="Monster Hunter.lua"/> Em access coloque o núemero de acesso mínimo para poder usar o comando. 5 = somente gods podem usar. Para iniciar o evento na maneira manual, basta usar /monsterhunter Para iniciar o evento na maneira automática, basta aguardar o tempo configurado.
  19. HOLY SWORD Nesse tutorial, você vai aprender a criar uma SWORD, com ataque de area com HOLY. Bom, aqui está um PREVIEW, uma imagem de como a sua sword vai ficar. Lembrando que só funciona em OT's 8.0+. Pra começar, entre na pasta do teu OT, e depois vá em DATA/WEAPONS/SCRIPTS Copie qualquer script que esteja la, (Um arquivo .lua) apague tudo que está escrito no Script e coloque isto: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WHIRLWINDSWORD) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -5.0, -500, -5.0, -500) local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) setCombatArea(combat, area) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end feche e salve como demonrage.lua Explicando: COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE : É o tipo de combate, no caso physical. COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WHIRLWINDSWORD : É o cambate a distancia, isso que fará sair uma espada. COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) e COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE) : É o ataque de HOLY, isso que fará sair o ataque de area com HOLY. COMBAT_FORMULA_LEVELMAGIC, -5.0, -500, -5.0, -500 : É o poder da espada, no caso está como o dobro do poder do Sprite wand, para poder deixa mais fraco basta mexer nos numeros. -5.0, -500, -5.0, -500, mas eles devem ser sempre negativos. Agora abra o arquivo weapons.xml que esta na pasta weapons, abra-o e na parte onde esta escrito "<!-- Rods --> ou <!-- Wands -->" adicione em baixo do ultimo isso: Explicando: é o id do item que sera usado, no caso o id da demonrage 7382 é a distancia que irá atakar é o lvl necessario para usar a arma quantidade de mana que gasta Pronto a arma está feita, mas pera ae, quando a pessoa der look na arma vai aparecer oq? Nada, naum vai aparecer ataque nem nome, como resolver? faça o seguinte, va na pasta Items, e abra-o arquivo items.xml, aperta Ctrl+F, irá abrir uma janela, digite o id da demonrage, 7382, ele ira achar apenas um. estará assim: <item id="7382" name=""> <attribute key="weight" value="0"/> </item> Apague isso, e coloque isto: <item id="7382" name="Holy Sword"> <attribute key="weight" value="6400"/> <attribute key="defense" value="50"/> <attribute key="attack" value="120"/> <attribute key="weaponType" value="sword"/> <attribute key="description0" value="With Holy Damage"/> No caso a espada será de uma mao, para mudar isso, só colocar " <attribute key="slotType" value="two-handed"/>" abaixo do ultimo. Para mudar o ataque ou a defesa, só mudar o value de attack e defense. Pronto sua Holy Sword está pronta, agora quando alguem der look no item irá aparecer atk 120 def 50 e o nome aparecera Holy Sword. Obrigado. Créditos: theflammer 70% - POR CRIAR O TUTORIAL E O SCRIPT (?). KingDestroyer 30% - POR EDITAR O TUTORIAL E O SCRIPT. VALEU :XTibia_smile: :hi:
  20. • Snowz Thyranic 3.1 - Especial Edition (8.60) • Servidor feito por luisfe23 e Doidin. Fala galera estou aqui para apresentar o novo Snowz Thyranic, eu e o luisfe23 estamos trabalhando a muito tempo neste servidor e muitas novidades surgirão, este servidor é baseado no mapa Thyrania e contém um RPG super emocionante. Então, tá esperando o que? Confira logo! • 8 Cidades: ├ Rookgaard ├ Thyran ├ Murnia ├ Saaha ├ Icya ├ Venga ├ Mandrin └ Talas • Conta do GOD: ├ Account: god └ Senha: god Ok, vamos logo para as atualizações! • Snowz Thyranic Versão 1: • Snowz Thyranic Versão 1.1: • Snowz Thyranic Versão 2: • Snowz Thyranic Versão 2.1: • Snowz Thyranic Versão 3.0: • Snowz Thyranic Versão 3.1 (Especial Edition): ├ Modificações no Distro, ele está completamente estável! ├ Modificações no mapa, bugs foram removidos! ├ Modificações em vários NPC's, eles estão bem mais realistas! ├ Todos os NPC's de Addons foram removidos e substituidos por apenas 1 que fica nas redondezas de Thyran. ├ A Demon Oak Quest está funcionando perfeitamente. ├ A Dijin Quest agora está funcionando perfeitamente. ├ A Black Knight Quest está funcionando perfeitamente. ├ Todos os bugs que davam para fazer dinheiro foram removidos. ├ Adicionado NPC "Padre" em Thyran, ele realiza casamentos. ├ Agora as bless custam apenas 50k. ├ Arrumado as Quests no Quest Log. └ Entre várias outras mudanças! • Algumas Imagens: :forward: Download do Snowz Thyranic 3.1 (8.60) :forward: Scan do Snowz Thyranic 3.1 (8.60) • Créditos: Achou Bugs? Reporte !
  21. Pessoal tenho esse código que achei por ai na internet ( mas como ele é meio antigo resolvi criar um post pra tentar solucionar ): Codigo: Ele vai na pasta Movements, e serve para criar uma Boss Room onde só entra 1 pessoa por vez. Enfim, ela faz quase tudo que está escrita pra fazer ( spawna o boss, seta o tempo para kickar o jogador ), porém não está limpando a sala e nem deixando o mesmo jogador repetir o boss. Coloquei ai no script para o boss poder ser feito de 1 em 1 minuto, porém ele não deixa o personagem fazer mais de 1 vez. Criei um item para dar ao personagem o Storage 9000, esse item qdo usado some e o personagem ganha o storage, então ele consegue entrar no TP. Acontece que depois que ele sai ele não consegue entrar mais, como se o storage tivesse sido removido, mas no banco de dados do PHPMYADMIN fica 9000 lá em players_storage. Ps: Se usar novamente o item de storage ele acaba conseguindo ir de novo no boss porém, somente +1 vez (???) Agradeço desde já ^^.
  22. Vou postar o tão famoso Guild War System Com Escudos. Vou começar pelo site : Vá em Xampp/Htdocs e crie e um arquivo chamado wars.php,dentro add isto: <?php $main_content = "<h1 align=\"center\">Guild Wars</h1> <script type=\"text/javascript\"><!-- function show_hide(flip) { var tmp = document.getElementById(flip); if(tmp) tmp.style.display = tmp.style.display == 'none' ? '' : 'none'; } --></script> <a onclick=\"show_hide('information'); return false;\" style=\"cursor: pointer;\"><h1><center>» Click to se the commands «<center></h1></a> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\" id=\"information\" style=\"display: none;\";> <tr align=\"center\"><b>You must send this commands in GUILD CHAT.</tr> <tr style=\"background: #512e0b;\"><td align=\"center\" class=\"white\"><b>Command</b></td><td colspan=\"2\" align=\"center\" class=\"white\"><b>Description</b></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war invite, guild name, fraglimit</b></td><td>Sends an invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150<BR></font><B>(Invite a guild to war with 150 frags count.)</B></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/war invite, guild name, fraglimit, money</b></td><td>Send the invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150, 10000</font><br><B> (Invite a guild to war with 150 frags count and payment of 10000 gold coins <- you need donate to guild to use it.)<B></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war accept, guild name</b></td><td>Accepts the invitation to start a war. Example: <font color=red><BR>/war accept, Chickens</font><BR><B>(Accept the war against guild \"Chickens\".)</b></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/war reject, guild name</b></td><td>Rejects the invitation to start a war. Example: <font color=red><BR>/war reject, Chickens</font><BR><B>(Reject a invitation to war from Chickens.)</B></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war cancel, guild name</b></td><td>Cancels the invitation. Example: <font color=red><BR>/war cancel, Chickens</font><br><b>(Cancel my guild invitation to war with Chickens.)</b></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/balance</b></td><td>See the guild balance - balance of money.</td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/balance donate value</b></td><td>Deposits money on the guild's bank account. All players can donate. Example: <font color=red><BR>/balance donate 100000 </font><BR><B>(You will donate 100k to your guild balance.)</B></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/balance pick value</b></td><td>Withdraws money from the guild's bank account. Can be used only by the guild leader. Example: <font color=red><BR>/balance pick 100000 </font><BR><B>(You will withdraw 100k from your guild balance.)</B></td></tr> </table> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\"> <tr> <td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Aggressor</b></td> <td style=\"background: #512e0b\" class=\"white\"><b>Information</b></td> <td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Enemy</b></td> </tr><tr style=\"background: #F1E0C6;\">"; $count = 0; foreach($SQL->query('SELECT * FROM `guild_wars` WHERE `status` IN (1,4) OR ((`end` >= (UNIX_TIMESTAMP() - 604800) OR `end` = 0) AND `status` IN (0,5));') as $war) { $a = $ots->createObject('Guild'); $a->load($war['guild_id']); if(!$a->isLoaded()) continue; $e = $ots->createObject('Guild'); $e->load($war['enemy_id']); if(!$e->isLoaded()) continue; $alogo = $a->getCustomField('logo_gfx_name'); if(empty($alogo) || !file_exists('guilds/' . $alogo)) $alogo = 'default_logo.gif'; $elogo = $e->getCustomField('logo_gfx_name'); if(empty($elogo) || !file_exists('guilds/' . $elogo)) $elogo = 'default_logo.gif'; $count++; $main_content .= "<tr style=\"background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\"> <td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$a->getId()."\"><img src=\"guilds/".$alogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$a->getName()."</a></td> <td align=\"center\">"; switch($war['status']) { case 0: { $main_content .= "<b>Pending acceptation</b><br />Invited on " . date("M d Y, H:i:s", $war['begin']) . " for " . ($war['end'] > 0 ? (($war['end'] - $war['begin']) / 86400) : "unspecified") . " days. The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment.")."<br />Will expire in three days."; break; } case 3: { $main_content .= "<s>Canceled invitation</s><br />Sent invite on " . date("M d Y, H:i:s", $war['begin']) . ", canceled on " . date("M d Y, H:i:s", $war['end']) . "."; break; } case 2: { $main_content .= "Rejected invitation<br />Invited on " . date("M d Y, H:i:s", $war['begin']) . ", rejected on " . date("M d Y, H:i:s", $war['end']) . "."; break; } case 1: { $main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred; font-weight: bold;\">On a brutal war</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ($war['end'] > 0 ? ", will end up at " . date("M d Y, H:i:s", $war['end']) : "") . ".<br />The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment."); break; } case 4: { $main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred;\">Pending end</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", signed armstice on " . date("M d Y, H:i:s", $war['end']) . ".<br />Will expire after reaching " . $war['frags'] . " frags. ".($war['payment'] > 0 ? "The payment is set to " . $war['payment'] . " bronze coins." : "There's no payment set."); break; } case 5: { $main_content .= "<i>Ended</i><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", ended on " . date("M d Y, H:i:s", $war['end']) . ". Frag statistics: <span style=\"color: red;\">" . $war['guild_kills'] . "</span> to <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span>."; break; } default: { $main_content .= "Unknown, please contact with gamemaster."; break; } } $main_content .= "<br /><br /><a onclick=\"show_hide('war-details:" . $war['id'] . "'); return false;\" style=\"cursor: pointer;\">» Details «</a></td> <td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$e->getId()."\"><img src=\"guilds/".$elogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$e->getName()."</a></td> </tr> <tr id=\"war-details:" . $war['id'] . "\" style=\"display: none; background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\"> <td colspan=\"3\">"; if(in_array($war['status'], array(1,4,5))) { $deaths = $SQL->query('SELECT `pd`.`id`, `pd`.`date`, `gk`.`guild_id` AS `enemy`, `p`.`name`, `pd`.`level` FROM `guild_kills` gk LEFT JOIN `player_deaths` pd ON `gk`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `gk`.`war_id` = ' . $war['id'] . ' AND `p`.`deleted` = 0 ORDER BY `pd`.`date` DESC')->fetchAll(); if(!empty($deaths)) { foreach($deaths as $death) { $killers = $SQL->query('SELECT `p`.`name` AS `player_name`, `p`.`deleted` AS `player_exists`, `k`.`war` AS `is_war` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `p`.`id` = `pk`.`player_id` WHERE `k`.`death_id` = ' . $death['id'] . ' ORDER BY `k`.`final_hit` DESC, `k`.`id` ASC')->fetchAll(); $count = count($killers); $i = 0; $others = false; $main_content .= date("j M Y, H:i", $death['date']) . " <span style=\"font-weight: bold; color: " . ($death['enemy'] == $war['guild_id'] ? "red" : "lime") . ";\">+</span> <a href=\"index.php?subtopic=characters&name=" . urlencode($death['name']) . "\"><b>".$death['name']."</b></a> "; foreach($killers as $killer) { $i++; if($killer['is_war'] != 0) { if($i == 1) $main_content .= "killed at level <b>".$death['level']."</b> by "; else if($i == $count && $others == false) $main_content .= " and by "; else $main_content .= ", "; if($killer['player_exists'] == 0) $main_content .= "<a href=\"index.php?subtopic=characters&name=".urlencode($killer['player_name'])."\">"; $main_content .= $killer['player_name']; if($killer['player_exists'] == 0) $main_content .= "</a>"; } else $others = true; if($i == $count) { if($others == true) $main_content .= " and few others"; $main_content .= ".<br />"; } } } } else $main_content .= "<center>There were no frags on this war so far.</center>"; } else $main_content .= "<center>This war did not began yet.</center>"; $main_content .= "</td> </tr>"; } if($count == 0) $main_content .= "<tr style=\"background: ".$config['site']['darkborder'].";\"> <td colspan=\"3\">Currently there are no active wars.</td> </tr>"; $main_content .= "</table>"; $main_content .= '<div align="right"><small><b>Customized by: <a href="http://www.xtibia.com/forum/user/240289-walef-xavier">Walef Xavier</a></b></small></div><br />'; ?> Agora vá em Xampp/Htdocs/index.php e add o seguinte: case "wars"; $subtopic = "wars"; $topic = "Guild Wars"; include("wars.php"); break; Agora para finalizar a parte do site vá em Xampp/Htdocs/Layout/Tibiacom/layout.php e add o seguinte: <a href='?subtopic=wars'> <div id='submenu_wars' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_polls' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>Guild Wars</font></div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Agora vamos para seu Ot: Va em GlobalEvents/scripts/start.lua e add o seguinte: db.executeQuery("DELETE FROM `guild_wars` WHERE `status` = 0 AND `begin` < " .. (os.time() - 2 * 86400) .. ";") db.executeQuery("UPDATE `guild_wars` SET `status` = 5, `end` = " .. os.time() .. " WHERE `status` = 1 AND `end` > 0 AND `end` < " .. os.time() .. ";") Agora vá em Lib e crie um arquivo .lua chamado 101-war,dentro add o seguinte: WAR_GUILD = 0 WAR_ENEMY = 1 Agora para finalizar vamos colocar os comandos em Talkactions ! Vá em Talkactions/scripts e crie dois arquivos chamados war.lua e balance.lua,dentro add o seguinte: War.lua function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return true end if(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.query("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return true end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status) if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1") if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end balance.lua local function isValidMoney(value) if(value == nil) then return false end return (value > 0 and value <= 99999999999999) end function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(guild == 0) then return false end local t = string.explode(param, ' ', 1) if(getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER and isInArray({ 'pick' }, t[1])) then if(t[1] == 'pick') then local money = { tonumber(t[2]) } if(not isValidMoney(money[1])) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end local result = db.getResult('SELECT `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end money[2] = result:getDataLong('balance') result:free() if(money[1] > money[2]) then doPlayerSendChannelMessage(cid, '', 'The balance is too low for such amount.', TALKTYPE_CHANNEL_W, 0) return true end if(not db.query('UPDATE `guilds` SET `balance` = `balance` - ' .. money[1] .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')) then return false end doPlayerAddMoney(cid, money[1]) doPlayerSendChannelMessage(cid, '', 'You have just picked ' .. money[1] .. ' money from your guild balance.', TALKTYPE_CHANNEL_W, 0) else doPlayerSendChannelMessage(cid, '', 'Invalid sub-command.', TALKTYPE_CHANNEL_W, 0) end elseif(t[1] == 'donate') then local money = tonumber(t[2]) if(not isValidMoney(money)) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end if(getPlayerMoney(cid) < money) then doPlayerSendChannelMessage(cid, '', 'You don\'t have enough money.', TALKTYPE_CHANNEL_W, 0) return true end if(not doPlayerRemoveMoney(cid, money)) then return false end db.query('UPDATE `guilds` SET `balance` = `balance` + ' .. money .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;') doPlayerSendChannelMessage(cid, '', 'You have transfered ' .. money .. ' money to your guild balance.', TALKTYPE_CHANNEL_W, 0) else local result = db.getResult('SELECT `name`, `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end doPlayerSendChannelMessage(cid, '', 'Current balance of guild ' .. result:getDataString('name') .. ' is: ' .. result:getDataLong('balance') .. ' bronze coins.', TALKTYPE_CHANNEL_W, 0) result:free() end return true end Agora vá em Talkactions/talkactions.xml e add as duas tags: <talkaction words="/war" channel="0" event="script" value="war.lua" desc="(Guild channel command) War management."/> <talkaction words="/balance" channel="0" event="script" value="balance.lua" desc="(Guild channel command) Balance management."/> Pronto,seu Guild War Systema está instalado...mas para funcionar necessitará das tabelas na sua database e do Tfs 0.4 .Vou posta-los abaixo,respectivamente. . Tabelas . Para quem ainda não sabe add tabelas a sua database,vou ensinar: Acesse seu phpmyadmin,digite sua senha (caso tenha),clique no nome da sua database a esquerda,assim que carregar a sua database clique em SQL lá em cima...Aparecerá um espaço em branco lá voce irá add as seguintes tabelas...e depois clicar em Executar. CREATE TABLE IF NOT EXISTS `guild_wars` ( `id` INT NOT NULL AUTO_INCREMENT, `guild_id` INT NOT NULL, `enemy_id` INT NOT NULL, `begin` BIGINT NOT NULL DEFAULT '0', `end` BIGINT NOT NULL DEFAULT '0', `frags` INT UNSIGNED NOT NULL DEFAULT '0', `payment` BIGINT UNSIGNED NOT NULL DEFAULT '0', `guild_kills` INT UNSIGNED NOT NULL DEFAULT '0', `enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `status` (`status`), KEY `guild_id` (`guild_id`), KEY `enemy_id` (`enemy_id`) ) ENGINE=InnoDB; ALTER TABLE `guild_wars` ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`; CREATE TABLE IF NOT EXISTS `guild_kills` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `guild_id` INT NOT NULL, `war_id` INT NOT NULL, `death_id` INT NOT NULL ) ENGINE = InnoDB; ALTER TABLE `guild_kills` ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0; Pronto o Guild Wars System está totalmente instalado...falta apenas o Tfs 0.4 ! O meu The Forggoten Server 0.4 também comprei do mesmo cara que me vendeu o GWS,tenho um também que comprei na ChaitoSoft,mais conversei com eles por Msn e não permitirão que eu postasse pra ninguem,rsrs. Então vou postar o link do download e o scan: TFS 0.4 DEV Scan Ai está a DEV.... Também será necessario usar o items.xml e items.otb , a não ser que o que vc tenha seja compativel com o distro. Item.xml e otb Scan Obs: Este distro não carrega scripts que tenha a função "dbExecute.query",sempre que tiver mude para "db.query" .Todo o script ja está configurado para funcionar assim,não se preucupe. Só isso,obrigado a todos...que Deus Abençoe voces sempre !
  23. [Novo] Carlin War BeTa 2.1 ® By DeathCore (8.60) Depois Do Update 2.1. - Bug De Algumas Magias Forão Arrumadas. - City Maior E Mais Rpg Nas Escadas - Script Do Vocations Sem Bugss td balanceadinhuuu! - Scripts Bugados , e Alguns Sem Uso Forão Retirados, Para Dexar o Server Mais Estável. - Revisada No Distro, Para Dexar Mais Estável. - Update Em Breve , Para Melhorar O Server Pra " Vc vc vc vc (8 ". Antes Do Update. -Novos Player Inicia level 200 -Skills de Acordo com Level -Apenas level 200 não tem como voltar Level -Bugs das Houses que dava erro no distro,todos corrigidos -Npc vendedor de itens,vendendo mais itens -vocações mais fortes,mas balanceadas -Potions que healavão 1.0 agora healando 1.2 -Trainers modificados Atacando novos rapidos -Sala de Trainers almentada,bem maior do que antes -Stone Skin Amuleto Infinito mas com 10% de protect contra death e physical -Rings com mais tempo de duração -Novas Talkactions -Look no player mostrando Frags -Efeitos animados na hora de upar level ou skills -Magias com um pouco menos de Exausted,nada exagerado fiquem tranquilos -Alguns Items editados,mas nada exagerado -e muito mais !! Team x Team -Se quiser jogar com Team,Apenas entre em um dos 2 teleportes que há no templo com o team Red e Blue [as outfits seram mudadas,Red team usara outfit de CM,e Blue Team usa outfit de GM,mas calma não podem usar nenhum comando,apenas ganham a outfit Raid [Evento] -Evento que é executado a cada 40 minutos no server que dara invasão de monstro que daram exp,nada exagerado,de 1 a 2 level no maximo. -Esses monstros são chamados de [Evento],são fortes contra todos elentos e physical então não sera facil matalos sozinho vai dar tempo de todos uparem Acc God god/god Temple Do Mau ^^ Novas Talkactions Depot E Npcs. [Evento] Invasões Area Dos Treiners War Rolando ^^ Novos Itens a Venda Carlin War BeTa 2.1 (8.60) Download > http://www.4shared.c...DeathCore.html? Nunka Vo Postar Virus! Confiança é Tudo. Scan > http://www.virustota...0369-1309057164 Créditos Elsu Soldoran DeathCore (eu) -Créditos aos devidos donos dos Scripts-Créditos aos devidos donos pelas dlls e exe. -Creditos a min por incrementar o resto. Gosto? Então Da Rep+, Não Vai Cair Seu Dedo Comentem Eminhos e Eminhas. Mapas Antigos Não Perde RPG, Pra Min Os Antigos É Que Tem Rpg, Oq Eu Faço? , Tiro Bugs E Coloko Mais RPG Em Mapas Antigos.
  24. Fala galerinha XTibiana! Estou querendo por uns scripts novos no meu servidor ,e veio em mente o seguinte script. Quando o player de "USE" no 1kk ele vira outro item , tipo aquele Golden Nuget (acho que é assim). Alguem tem esse script e pode me passar ? Tanks !, Tipo do script: Transformação de item. Protocolo (versão do Tibia):8.60 Servidor utilizado: Subwat Editado Nível de experiência: Tanto fais rsrs.... Adicionais/Informações: PORFAVOR o mais rapido o possivel !
  25. wenderotpoke

    Headbutt

    Opa.... e aí.... então quero add novas arvores no Headbutt, mas sem que atrapalhe nas outras.... quero que pegue essas 4 arvoes Id Normal "Id Quebrada" 2707 = "19967" 2706 = "19966" 2705 = "19965' 2704 = "19964" tipo quero que todas essas arvoes deem pra usar o headbutt e que transformem nas mesma sem mudar elas. Agradeço desde já REP+
×
×
  • Criar Novo...