Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/05/15 em todas áreas
-
Introdução Este script consiste em defender uma porcentagem dos ataques recebidos de acordo com o dodge level. Exemplo: Suponhamos que o player tenha Dodge Skill 100 e a porcentagem de defesa esteja configurado para defender 50%, o player terá 30% de chance de defender 50% dos ataques recebidos. Instalação O conteúdo da lib serve para o Dodge e Critical System, se você já fez este procedimento no outro script simplesmente ignore e vá para o próximo passo. Em data/lib/core/core.lua adicione o seguinte conteúdo em qualquer parte: dofile('data/lib/core/dclib.lua')Ainda em data/lib/core/core crie um arquivo chamado dclib.lua com o seguinte conteúdo: Agora em data/actions/actions.xml adicione a seguinte tag: <action itemid="18413" script="other/dodge.lua"/>Depois em data/actions/scripts/other crie um arquivo chamado dodge.lua com o seguinte conteúdo: Pronto, já configuramos o item para atribuir o Dodge Skill, vamos configurar a parte dos ataques recebidos. Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag: <event type="healthchange" name="DodgeSystem" script="dodgeSystem.lua"/>Agora em data/creaturescripts/scripts crie um arquivo chamado dodgeSystem.lua com o seguinte conteúdo: Ainda em data/creaturescripts/scripts abra o arquivo login.lua e Antes de: return trueAdicione: player:registerEvent("DodgeSystem") -- Dodge System if player:getDodgeLevel() == -1 then player:setDodgeLevel(0) endO sistema está finalizado, agora vamos criar as talkactions para que os players acompanhem seu skill. Em data/talkactions/talkactions.xml adicione a tag: <talkaction words="!dodge" script="dodge.lua"/>E para finalizar, em data/talkactions/scripts crie um arquivo chamado dodge.lua com o seguinte conteúdo: Bom é isso ai! Créditos:3 pontos
-
3 pontos
-
Eai pessoal blz? eu estava lendo um tópico do nosso amigo Alexxxx... ai o Top...(o Bolz, esqueci o nick dele aq ¬¬) ai eu vi que ele falou que a forma que ele conseguio de adicionar addon no OT dele foi dando um Ctrol+F: Addon, na pasta do PokémonXRain! ai eu baixei ele e tentei, ai adicionei tudo nescessário nele no meu ot, ai quando usei, funcionou perfeitamente! mas claro q não é sem 100% pq quando da fly, ride, surf e etc ele volta pra outfit normal, ai precisa dar Go/back no pokémon para voltar com o addon! mas fora isto esta funcionando perfeitamente! Então Vamos Parar de Blábláblá e começar! Em Data/actions e Actions.xml adiciona isto: <action itemid="IdAddon;IdAddon" event="script" value="Addon.lua"/> Em IdAddon Coloca os ids dos items dos addons! ai para adicionar mais ids é só colocar o ";" Ou seja aquele negocio verde, e depois colocar o ID Ficando: IdAddon;IdAddon;IdAddon e por ai vai Ai Em Data/actions/scripts cria um arquivo lua Chamado "Addon" e Dentro Dele Adiciona Isto: function onUse(cid, item, fromPosition, itemEx, toPosition) local addons = { [12593] = {pokemon= "Electabuzz" , looktype = 1482}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon [12925] = {pokemon= "Alakazam" , looktype = 1471}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon } if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Please back your pokemon.") return false end local numero = addons[item.itemid].looktype local pb = getPlayerSlotItem(cid, 8).uid local pk = addons[item.itemid].pokemon if getItemAttribute(pb,"poke") ~= pk then doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.") return false end if getItemAttribute(pb,"addon") < 1 then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.") doSetItemAttribute(pb,"addon",numero) return true end return true end Ai para adicionar um Novo Addon é só Adicionar esta tag: [ItemID] = {pokemon= "NomeDoPoke" , looktype = IdDaOutfit}, EM ItemID, troca pelo id do addon em pokemon troca NomeDoPoke, pelo Nome Do Pokémon que vai ser adicionado o Addon Em looktype, troca IdDaOutfit, pelo looktype do pokémon com addon! Em Goback.lua Procure Por: else doPlayerSendCancel(cid, "This pokemon is fainted.") end E Adiciona Emcima de Else Isto: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end Em Catch system.lua Procura Por: doItemSetAttribute(item, "description", description) Adiciona Isto embaixo: doItemSetAttribute(item, "addon", 0) Em Some Functions.lua Procure Por: unLock(item.uid) Da Enter Duas Vezes e Adiciona isto: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end Pronto! Sistema de Addon Funcionando Perfeitamente Caso Coloque Tudo Certinho! Caso Queira uma Addon Box... Faz isto Em Actions.xml Adiciona Isto: <action itemid="12595" event="script" value="addonbox.lua"/> E Em Data/Actions/Scripts Cria um Arquivo Lua Chamado "addonbox" e Adiciona Isto Dentro Dele: function onUse(cid, item, frompos, item2, topos, pos) local addons = {12593,12889} local randomChance = math.random(1, 49) if item2.itemid == 12595 then doSendMagicEffect(getCreaturePosition(cid), 28) doRemoveItem(item2.uid, 1) doPlayerAddItem(cid, addons[randomChance], 1) doPlayerSendTextMessage(cid, 27, "Você ganhou um Addon!") return true end end Pronto Addon Box Adicionada! Créditos Pokémon X Rain Pelo Sistema de Addon Summer Slyer (Zet0N0Murmurou) Por Trazer ao Xtibia, e Por Fazer o Tutorial!2 pontos
-
1 ponto
-
[ORIGINAL] (10.10) New Baiak Yurots V1.0 32bits SQLITE CAST SYSTEM E WAR SYSTEM 100%
Strikerzerah reagiu a Luizbaiak por um tópico no fórum
Olá Galerinha Tibiana! Durante 3 anos o baiak ainda está se atualizando cada vez mais e agora eu venho trazer a nova versao 10.10 não esta 100% mais garanto que vao gostar,entao vamos ver oque há de novo nele ? Essa Nova Versão eu conseguir criar em apenas 2 dias e meio e nao deu tempo de testar mais se houver bugs comentem por favor. Versão x10.1- 1.0 Oque há de novo ? • Todas as mountarias da versao 10.10 • Todos os outfits 10.10 • Todos os items 10.10 • Monsters ainda em andamento. • Templo com cara de 10.10 • City Vip com novo visual 10.10 • War System 100% - Comandos :/war invite,nomedaguildrival outra guild ativar a war /accept war,guildrival cancelar war . /war cancel,guildrival • Cast System 100% - Comandos:!cast list para ver casts abertos,!cast nomedoplayer para entrar, !cast exit para sair do cast que voce está !cast on para voce abrir um cast e !cast off para sair • Novo Npc no templo que vende items 10.10 • Novo npc que vende items vip • Bug das houses retirados • Bug da Sql retirado • Novos Comandos /rank !mount nomedamount !addon nomedoaddon !changesex !buyhouse,!leavehouse,alana res,!sellhouse funcionando 100% e muito mais que nao veio na cabeça mais quando eu lembrar posto. O Servidor está em SQL pronto para por online e os erros do distro nao encomodam o server. • Baiak Yurots V5.2 Oque Mudou ? •Tirei bug das houses •Tirei todos os erro do distro •Arrumei o lado >> da city vip agora mais rox. • Baiak Yurots V5.1 Oque Mudou ? • Mudei a Quest do templo lv 150 ganha 2kk agora ganha só 500k • Melhorei os teleports master lv 300+ agora tem 4 novas quest e 2 hunt + • Mudei respaw de todas as hunts free , vip e master agora ta 5x melhor. • Mudei Tempo da loteria tava 15 em 15 minutos agora ta de 1 em 1 hora. • Melhorei a Exori gran do kina. • Mudei os loot do monster bosses agora igual da versao 10.30 do global • Adicionei quest do addon doll na area d lvel 300+ • Adicionei Quest do 2kk na area d Lvl 300+ • Adicionei Quest do necromancer shield na area de Lv 300+ • Adicionei Quest do Dwarven Set e hornede helmet na area de level 300+ • Adicionei o novo monster Master Medusa Lv 300+ • Adicionei 2 novas hunt de Master Medusa. Se eu lembrar mas alguma coisa eu posto. :S • Baiak Yurots V5.0 Oque Mudou ? • Agora a City Está Maior Mais Bonita e Com Mais Houses. • Novo Sistema de Treiner não prescisa andar muito para axar um livre. • Novos monstros vip ( Sea Serpent Vip , Hellhound vip , night mare vip , fury vip ) novos monstros master ( hydra master , frost master , grim master e demon master). • Nova Quest Master Com Armas Para todas as vocaçao. • Agora o NPC VIP Vende e compra items vip, pois se voce pegar item vip de algum red algo assim voce pode vender mais so que o npc compra 60% mais barato ☺ • Novo Npc que vender Red Remover. • Novo Templo. • Novas Quests. • Novo Depot. • Novos Commandos ( !food Compra 100 , !topfrags Ver quem é o top frag , !glist ver as guild do server e !glist Nameguild para ver os player da guild. • Teleports Free e vip Agora com nova cara. • Novo Caminho Para Poi no mesmo lugar so que mais bonito. • Addon agora é com addon doll npc Varkhal Vende. • Systema de Loteria a cada 2 Horas. • Nova arena de team god que organiza. E muito Mais .. Novos Items. Master vip Quest Teleports Master Templo vip Templo city Teleports Master Teleport Free Documento baiak original O Server Está FULL EM SQL Só Baixar e Por Online Abaixo ! Download Baiak 10.10 13/01/2014 - >http://www.4shared.com/rar/hOppT8_kba/Baiak_1010.html Scan Baiak 10.10 -> https://www.virustotal.com/pt-br/file/e18224ffa86a7a034e66d9d57e441cd179ed24a842fdcf9b532266227877f501/analysis/1389761678/ Testado 32bits windowns 7. acc do god -> god/god Creditos 10% GOD Bon | Por editar em 2008 90% Baiak Lula = Luizbaiak | Por editar2010 a 2014 Contato Face -> https://www.facebook...zhenrique.baiak Email -> Baiaklula@gmail.com Obrigado bom jogo! GOSTOU? DE REP+.1 ponto -
Introdução Este script consiste em aumentar uma porcentagem dos ataques de acordo com o critical level. Exemplo: Suponhamos que o player tenha Critical Skill 100 e a porcentagem de ataque esteja configurado para aumentar 50%, o player terá 30% de chance de au 50% dos ataques. Instalação O conteúdo da lib serve para o Critical e Dodge System, se você já fez este procedimento no outro script simplesmente ignore e vá para o próximo passo. Em data/lib/core/core.lua adicione o seguinte conteúdo em qualquer parte: dofile('data/lib/core/dclib.lua')Ainda em data/lib/core/core crie um arquivo chamado dclib.lua com o seguinte conteúdo: Agora em data/actions/actions.xml adicione a seguinte tag: <action itemid="18415" script="other/critical.lua"/>Depois em data/actions/scripts/other crie um arquivo chamado critical.lua com o seguinte conteúdo: Pronto, já configuramos o item para atribuir o Critical Skill, vamos configurar a parte dos ataques. Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag: <event type="healthchange" name="CriticalSystem" script="criticalSystem.lua"/>Agora em data/creaturescripts/scripts crie um arquivo chamado criticalSystem.lua com o seguinte conteúdo: Ainda em data/creaturescripts/scripts abra o arquivo login.lua e Antes de: return trueAdicione: player:registerEvent("CriticalSystem") -- Critical System if player:getCriticalLevel() == -1 then player:setCriticalLevel(0) endO sistema está finalizado, agora vamos criar as talkactions para que os players acompanhem seu skill. Em data/talkactions/talkactions.xml adicione a tag: <talkaction words="!critical" script="critical.lua"/>E para finalizar, em data/talkactions/scripts crie um arquivo chamado critical.lua com o seguinte conteúdo: Bom é isso ai! Créditos:1 ponto
-
Vanaheim global open source
sandrodiegoadao reagiu a Bruno por um tópico no fórum
m método diferente de agir. Escolhas diferentes, um projeto surpreendente, e o melhor é open source. Sim, você pode ter acesso a este servidor que estou desenvolvendo em parceria com a Serversoft para você. Um servidor com uma mega estrutura para suportar seus jogadores online sem nenhum problema como: debug, bug de clonagem, instabilidade entre diversos outros dos servidores free's disponíveis para download nessa vasta internet tibiana. Uma inovação no ramo de OTservers, distribuindo não só a datapack como as sourcers e os sistemas, absolutamente tudo que você procura. Basta baixar, compilar... Mas eu não sei compilar. Não há problema nisso, o OTPanel da Serversoft faz tudo isso para você. Basta clicar num botão de "play" e ver a mágica acontecer. O projeto Vanaheim, foi criado com o intuito de ser inteiramente grátis para toda a comunidade. Um servidor no qual a diversão é o fator principal, um projeto com viabilidade absoluta por todos os tibianos. O projeto conta com uma área exclusiva no GitHub para que todos possam acompanhar a evolução do mesmo, dia a dia, diversas atualizações estarão disponíveis a todos. Desde uma action até uma modificação na source vocês terão acesso. O servidor conta com um mapa Global Full, quando eu digo full, quero dizer que está 99.99% do mapa completo, sem bugs entre outros. Um servidor que você escolhe a rate experience/skill que desejar, ele vai se adaptar! Você pode escolher se quer ou não que as quests tenham as missões originais 100%! GITHUB Para acompanhar e baixar o servidor atualizado, segue o link do nosso projeto no GitHub: DOWNLOADS Servidor Mapa Yasir Scan CRÉDITOS TFS Team Orts Project1 ponto -
Pokemon Skyfall V.2
gustavoss5 reagiu a OtavioJdS por um tópico no fórum
[8.5] Pokemon SkyFall V. 2 Olá galera, venho aqui trazer minhas edições ao servidor Pokemon SkyFall do Gabrieltxu, fiquei um bom tempo editando para por online, mas por uns motivos não pude, então vim disponibilizar para vocês, espero que gostem. ► Conteúdo » Pokémons da 1° até a 4° geração. » Servidor Sem level . » Servidor já ajustado para usar OTclient com Barra de vida etc.. » Servidor com um MAPA Unico Com 2 Continentes . 1° Kanto 2° Hoen + Sinooh . » Sprites Novas e Atualizadas. ► Mudanças » Inquisition Quest acrescentada e teleport escondido. » Registeel adicionado (não tinha na versão anterior). » Concertado e adicionado novos itens para comprar no Shop Diamond. » Concertado corpos e pokemons » Dentre muitos outros... ► Prints ► Erros Do Servidor » Poucos, nada dificil de resolver. ► Acc God: 333/55555 ► Download » Servidor http://www.4shared.com/rar/GURzveX_ce/Pokemon_SkyFall_V2.html >> Scan https://www.virustotal.com/pt/url/ed14906ea7209fdc85f333a50cd5c966b358fecff34cbe8ba0d89721ed44a266/analysis/1395609370/ >> Cliente https://mega.co.nz/#!SJgGyagI!MmxCOiYPhCQElJIkXapFMRwJ54cAa2ubNrXjYXyReFo ► Créditos Eu – Otavio JdS GabrielTxu Zeref Shirou LekoDs Guidark21 Equipe Pokemon Galaxy betinhownz666 Glauber1 ponto -
Level Máximo
GOD Vitor reagiu a FlamesAdmin por um tópico no fórum
Boa noite, venho aqui postar esse script que achei em um tópico de 2011 que um membro abriu pedindo o script. Vamos lá! Primeiro vá em creaturescripts/scripts/login.lua e adicione isso: registerCreatureEvent(cid, "LevelMax") Depois adicione essa tag em creaturescripts.xml: <event type="advance" name="LevelMax" event="script" value="levelmax.lua"/> Agora crie um arquilo .lua com o nome de levelmax e adicione este código dentro: local LevelMax = 180 function onAdvance(cid, skill, oldLevel, newLevel) if skill == 8 then if newLevel >= LevelMax then doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid)) return false end end return true end Para trocar o level máximo basta editar em: local LevelMax = 180 Espero que ajude! Créditos a MatheusMkalo1 ponto -
[TFS 0.4] Npc de Promotion por Task
AdilsonHacker reagiu a Furabio por um tópico no fórum
Npc : local Config = { Monsters = { -- ["Name"] = {amount = quantidade} ["Demon"] = {amount = 30}, ["Hydra"] = {amount = 10}, }, StoragePro = 54661, -- Não mexer se não souber editar Money = 100 -- Dinheiro } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local msg = msg:lower() local release = talkState[talkUser] if msgcontains(msg, "mission") then if getPlayerStorageValue(cid, Config.StoragePro) < 1 then selfSay("A missão para promovido custa " .. Config.Money .. " você aceita fazer ?", cid) release = 1 elseif getPlayerStorageValue(cid, Config.StoragePro) == (2 + #Config.Monsters) then selfSay("Você já cumpriu a missão peça pra ser {promovido}.", cid) release = 2 elseif getPlayerStorageValue(cid, Config.StoragePro) == (3 + #Config.Monsters) then selfSay("Voce já terminou as missões, pode ir em embora!", cid) release = 0 end elseif msgcontains(msg, "yes") and release == 1 then if doPlayerRemoveMoney(cid, Config.Money) then local text = "" for monsters, v in pairs(Config.Monsters) do txt = txt .. ", " txt = txt .. v.amount .. " {" .. monsters .. "}" end npcHandler:say("A missão é matar esses monstros para mim" .. text .. ".", cid) for i, _ in pairs(Config.Monsters) do setPlayerStorageValue(cid, i, 0) end setPlayerStorageValue(cid, Config.StoragePro, 1) release = 0 else selfSay("Você não tem money suficiente!", cid) release = 0 end elseif msgcontains(msg, "no") and release == 2 then selfSay("Até logo!", cid) release = 0 end if msgcontains(msg, "lista") and getPlayerStorageValue(cid, Config.StoragePro) < (#Config.Monster + 3) then local text, n = "", 0 for monsters, v in pairs(Config.Monsters) do local sto = getPlayerStorageValue(cid, monsters) if sto < v.amount then n = n + 1 text = text .. ", " text = text .. (tostring(sto) < tostring(1) and v.amount or (tostring(v.amount) - tostring(sto))) .. " {" .. monsters .. "}" end end text = text:sub(3) if n > 1 then selfSay("Para terminar sua missão você ainda tem que matar esses monstros : " .. text, cid) release = 0 elseif n == 1 then selfSay("Você só tem mais um monstro à matar : " .. text, cid) release = 0 else selfSay("Você já terminou de matar os monstro que lhe pedi, agora sim tu é digno de ser {promovido}.", cid) release = 2 end elseif msgcontains(msg, "promovido") and release == 2 then selfSay("Aqui está sua promoção jovem soldado!!", cid) setPlayerVocation(cid, (getPlayerVocation(cid) + 4)) setPlayerStorageValue(cid, Config.StoragePro, (#Config.Monsters + 3)) -- Para deixar em utilizavel a storage para outras coisas for monsters, _ in pairs(Config.Monsters) do setPlayerStorageValue(cid, monsters, -1) end release = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NPC.XML : <?xml version="1.0" encoding="UTF-8"?> <npc name="Aldo" script="arquivo.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="Olá |PLAYERNAME|, para você ser promoivido precisa passar por uma {mission}, para de uma olhada no que fazer diga {lista} ."/> </parameters> </npc> creaturescripts : local Config = { Monsters = { -- ["Name"] = {amount = quantidade} ["Demon"] = {amount = 30}, ["Hydra"] = {amount = 10}, }, StoragePro = 54661, -- Não mexer se não souber editar Money = 100 -- Dinheiro } function onKill(cid, target) if not isMonster(target) and getPlayerStorageValue(cid, Config.StoragePro) >= (2 + #Config.StoragePro) then return false end local monster = Config.Monsters[getCreatureName(target):lower] if monster then local sto = getPlayerStorageValue(cid, monster) if sto < (monster.amount - 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Task message: [" .. (sto + 1) .. "/" .. monster.amount .. "] of " .. getCreatureName(target) .. ".") setPlayerStorageValue(cid, monster, (sto + 1)) elseif sto == (monster.amount - 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations!! you have killed" .. (sto + 1) .. "/" .. monster.amount .. "] of " .. getCreatureName(target) .. "s ands and completed the task.") setPlayerStorageValue(cid, monster, (sto + 1)) setPlayerStorageValue(cid, Config.StoragePro, (getPlayerStorageValue(cid, Config.StoragePro) + 1)) end end return true end function onLogin(cid) registerCreatureEvent('taskNpc') return true end tag : <event type="login" name="verf_taskNpc" event="script" value="arquivo.lua"/> <event type="kill" name="taskNpc" event="script" value="arquivo.lua"/>1 ponto -
Modelo : Tamanho Tema: Pedido: Tipografia: Cores : Outros : Exemplo : Tamanho : 202x404 px Tema : Naruto Pedido : Avatar Tipografia : GodBeeny Cores : Azul, verde e amarelo Outros : Fonte : Bebas Lembrete : Só vou atender pedidos relacionados ao fórum (Avatar, sign, logo para servidor, background, etc) Qualquer pedido que não tenha nexo nenhum, vou ignorar.1 ponto
-
[Showoff] X-Layouts
Wend ll reagiu a MuriloCavalcantti por um tópico no fórum
Olá Xtibianos, eu o mais gostoso vim apresentar um trabalho que está sendo feito por mim e que em breve será postado aqui. É uma entrada de cadastro para serves de pokémon, fique por dentro das novidades do projeto X-Layouts, abraços!1 ponto -
[TFS 0.4 / 1.2] Tempo de jogo no seu OTServer
Dragon Ball Hiper reagiu a larissaots por um tópico no fórum
Créditos: Caronte Prévia OBS: Foi colocado interval 5000 para testar, que é 5 segundos, mas você pode alterar na TAG. Onde tem o 5000, ajuste a gosto. TFS 0.4 Na pasta (creaturescripts/scripts), crie um arquivo (uptime.lua) com o seguinte conteúdo: function onLogin(cid) local dat = { [12765] = os.date("%M"), -- minutos [22765] = os.date("%H"), -- hora [32765] = os.date("%d"), -- dia [42765] = os.date("%m"), -- mes [52765] = os.date("%S"), -- segundos [62765] = os.date("%y"), -- segundos } for a, b in pairs(dat) do doCreatureSetStorage(cid, a, b) end return true end <TAG/> em (creaturescripts): <event type="login" name="uptime" event="script" value="uptime.lua"/> Em (globalevents/scripts), crie um script, com nome (uptimesay.lua): function onThink(interval) for k, pid in pairs(getPlayersOnline()) do local stors = { mi = getCreatureStorage(pid, 12765), h = getCreatureStorage(pid, 22765), dia = getCreatureStorage(pid, 32765), me = getCreatureStorage(pid, 42765), seg = getCreatureStorage(pid, 52765), an = getCreatureStorage(pid, 62765), } s = "Você está jogando desde: "..stors.h..":"..stors.mi..":"..stors.seg.." de "..stors.dia.."/"..stors.me.."/"..stors.an..", Obrigado pela Preferência, TibiaKingOT.servegame.com agradece !" doPlayerSendTextMessage(pid,20, s) end return true end <TAG/> em (globalevents.xml): <globalevent name="uptosay" interval="5000" event="script" value="uptimesay.lua"/> TFS 1.2 (Se pegar 100% no 1.1, confirme no tópico) Em (globalevents/scripts), crie um script, com nome (uptimesay.lua): function onThink(interval) for k, pid in pairs(Game.getPlayers()) do local stors = { mi = pid:getStorageValue(12765), h = pid:getStorageValue(22765), dia = pid:getStorageValue(32765), me = pid:getStorageValue(42765), seg = pid:getStorageValue(52765), an = pid:getStorageValue(62765), } s = "Você está jogando desde: "..stors.h..":"..stors.mi..":"..stors.seg.." de "..stors.dia.."/"..stors.me.."/"..stors.an..", Obrigado pela Preferência, TibiaKingOT.servegame.com agradece !" pid:sendTextMessage(20, s) end return true end <TAG/> em (globalevents.xml): <globalevent name="uptosay" interval="5000" script="uptimesay.lua"/> Agora na pasta (creaturescripts/scripts), crie um arquivo (uptime.lua) com o seguinte conteúdo: function onLogin(player) local dat = { [12765] = os.date("%M"), -- minutos [22765] = os.date("%H"), -- hora [32765] = os.date("%d"), -- dia [42765] = os.date("%m"), -- mes [52765] = os.date("%S"), -- segundos [62765] = os.date("%y"), -- segundos } for a, b in pairs(dat) do player:setStorageValue(a, b) end return true end <TAG/> em (creaturescripts): <event type="login" name="uptime" script="uptime.lua"/>1 ponto -
Link Shopsystem não aparece
leonardo macedo reagiu a Bruno por uma questão
@@leonardo macedo, tenta assim: Tópico movido para a seção de dúvidas e pedidos resolvidos.1 ponto -
Daria para fazer, é só colocar: creature:say(primaryDamage, TALKTYPE_MONSTER_SAY) E alterar para o efeito desejado.1 ponto
-
Amigo, tenta pegar algum servidor da mesma versão que contenha sources e testa o executável. Se funcionar e o problema do bug ainda continuar, fica mais fácil de ajudarmos. Att.1 ponto
-
Criar Script Some Functions
Developer Berg reagiu a Bruno por uma questão
Dá sim amigo, Você pode colocar a lib nesse servidor, não necessariamente com o mesmo nome, basta criar o arquivo e colocar as funções dentro.1 ponto -
Dragon Ball Hiper Online
Dragon Ball Hiper reagiu a Ryck85 por um tópico no fórum
Entrem e Confiram! Servidor Com Updates constantes para Melhora do servidor, Em breve Mapa e Hunts Reformuladas... Equipe: Hiper By: Dark & Matheus wodbo.zapto.org1 ponto -
aq não abre a img http://i.imgur.com/LdMOL4G.png1 ponto
-
Mudar ,a dead da voc
Tiago Neri Lima reagiu a SkyLigh por uma questão
tenta esse em data/creaturescripts/scripts crie um arquivo .lua e renomeie para death_corpse e adicione isso dentro: function onDeath(cid, corpse) local table = { [1] = 1, --[vocation] = id do corpse [2] = 1, [3] = 1, [4] = 1 } doTransformItem(corpse.uid, table[getPlayerVocation(cid)] ) doDecayItem(corpse.uid) end em creaturescripts.xml essa tag <event type="death" name="deathCorpse" event="script" value="death_corpse.lua"/> em login.lua registerCreatureEvent(cid, "deathCorpse")1 ponto -
Mudar ,a dead da voc
Tiago Neri Lima reagiu a Deadpools por uma questão
Se você tiver as sources do serve, use isto > Corpse por vocation. Ou em lua: data/creaturescripts: local array = { [1] = 2160, [2] = 2160, [3] = 2160, [4] = 2160 } function onDeath(cid, corpse) for vocation, itemid in pairs(array) do if getPlayerVocation(cid) == vocation then doTransformItem(corpse.uid,itemid[array],1) doDecayItem(corpse.uid) break end end return true end [vocation ID] = ID do corpse, creaturescript.xml: <event type="death" name="Death" event="script" value="nomedoarquivo.lua"/> em login.lua registra o evento registerCreatureEvent(cid, "Death")1 ponto -
RadBR - Tibia como você nunca viu!
Diogo Alex reagiu a Peterwild por um tópico no fórum
O RadBR nunca teve seus dados resetados. Estão nos confundindo com algum desses "fã servers" que existem por ai Aos demais... agradecemos os votos1 ponto -
o outro é mesma coisa só que ainda continua o erro no distro.1 ponto
-
Falta de atenção minha no primeiro código : local config = { percentM = 0.5, --porcentagem que irá drenar dos montros. percentP = 25, --porcentagem que irá drenar dos players exhaust = 0 --tempo em segundos para usar a magia de novo. } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 13) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 40) function onCastSpell(cid, var) local enemy = getCreatureTarget(cid) local enemyHealthP = (getCreatureMaxHealth(enemy) / 100 * config.percentP) local enemyHealthM = (getCreatureMaxHealth(enemy) / 100 * config.percentM) if exhaustion.get(cid, 10223) then return false end if isMonster(enemy) then if getCreatureHealth(enemy) >= enemyHealthM then doCreatureAddHealth(enemy, -(enemyHealthM)) doCreatureAddHealth(cid, enemyHealthM) doSendAnimatedText(getThingPos(enemy), "-"..enemyHealthM, 5001) exhaustion.set(cid, 10223, config.exhaust) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Uma drenagem de health foi ativada, retirando " .. config.percentM .."% de life de sua vitima e acrescentando a você.") return doCombat(cid, combat, var) else doPlayerSendTextMessage(cid, 22, "Seu alvo está com menos de " .. config.percentM .. "% de life a magia não pode ser usada!") return false end elseif isPlayer(enemy) then if getCreatureHealth(enemy) >= enemyHealthP then doCreatureAddHealth(enemy, -(enemyHealthP)) doCreatureAddHealth(cid, enemyHealthP) doSendAnimatedText(getThingPos(enemy), "-"..enemyHealthP, 5001) exhaustion.set(cid, 10223, config.exhaust) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Uma drenagem de health foi ativada, retirando " .. config.percentP .. "% de life de sua vitima e acrescentando a você.") return doCombat(cid, combat, var) else doPlayerSendTextMessage(cid, 22, "Seu alvo está com menos de "..config.percentP.."% de life a magia não pode ser usada!") return false end end return true end Código com a outra lógica : local config = { percentM = 0.5, --porcentagem que irá drenar dos montros. percentP = 25, --porcentagem que irá drenar dos players exhaust = 0 --tempo em segundos para usar a magia de novo. } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 13) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 40) function onCastSpell(cid, var) local enemy, enemyHealth = getCreatureTarget(cid), 0 if exhaustion.get(cid, 10223) then return false end if isMonster(enemy) then enemyHealth = (getCreatureMaxHealth(enemy) / 100 * config.percentM) else enemyHealth = (getCreatureMaxHealth(enemy) / 100 * config.percentP) end if getCreatureHealth(enemy) >= enemyHealth then doCreatureAddHealth(enemy, -(enemyHealth)) doCreatureAddHealth(cid, enemyHealth) doSendAnimatedText(getThingPos(enemy), "-"..enemyHealth, 5001) exhaustion.set(cid, 10223, config.exhaust) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Uma drenagem de health foi ativada, retirando " .. isMonster(enemy) == true and config.percentM or config.percentP .. "% de life de sua vitima e acrescentando a você.") return doCombat(cid, combat, var) else doPlayerSendTextMessage(cid, 22, "Seu alvo está com menos de " .. isMonster(enemy) == true and config.percentM or config.percentP .."% de life a magia não pode ser usada!") return false end return true end1 ponto
-
[Erro] Char nascendo sem items gesior
Furabio reagiu a MuriloCavalcantti por uma questão
Eu ajudei ele ali em cima Flavio, tópico resolvido, fechado!1 ponto -
Alterações: Versão mínima alterada para 1077, para que dê suporte aos novos outfits e montarias; A talkaction newtypes suporta os novos outfits e montarias; Fixada a velocidade das montarias; Fixado o oufit Spirit Caller male. Downloads: Executável 32 bits - Download | Scan | Executável 64 bits - Download | Scan |1 ponto
-
[Erro] Char nascendo sem items gesior
Furabio reagiu a MuriloCavalcantti por uma questão
Tente esse script no firstitems.xml function onLogin(cid) if getPlayerGroupId(cid) == 1 and getPlayerStorageValue(cid, 50000) == -1 then if isSorcerer(cid) then local bag = doPlayerAddItem(cid, 9774, 1) doAddContainerItem(bag, 2120, 1) doAddContainerItem(bag, 2554, 1) doAddContainerItem(bag, 2152, 20) doPlayerAddItem(cid, 2525, 1) doPlayerAddItem(cid, 2190, 1) doPlayerAddItem(cid, 2463, 1) doPlayerAddItem(cid, 2457, 1) doPlayerAddItem(cid, 2647, 1) doPlayerAddItem(cid, 2643, 1) setPlayerStorageValue(cid, 50000, 1) elseif isDruid(cid) then local bag = doPlayerAddItem(cid, 9774, 1) doAddContainerItem(bag, 2120, 1) doAddContainerItem(bag, 2554, 1) doAddContainerItem(bag, 2152, 20) doPlayerAddItem(cid, 2525, 1) doPlayerAddItem(cid, 2182, 1) doPlayerAddItem(cid, 2463, 1) doPlayerAddItem(cid, 2457, 1) doPlayerAddItem(cid, 2647, 1) doPlayerAddItem(cid, 2643, 1) setPlayerStorageValue(cid, 50000, 1) elseif isPaladin(cid) then local bag = doPlayerAddItem(cid, 9774, 1) doAddContainerItem(bag, 2120, 1) doAddContainerItem(bag, 2554, 1) doAddContainerItem(bag, 2152, 20) doPlayerAddItem(cid, 2389, 3) doPlayerAddItem(cid, 2525, 1) doPlayerAddItem(cid, 2457, 1) doPlayerAddItem(cid, 2643, 1) doPlayerAddItem(cid, 2647, 1) doPlayerAddItem(cid, 2463, 1) setPlayerStorageValue(cid, 50000, 1) elseif isKnight(cid) then local bag = doPlayerAddItem(cid, 9774, 1) doAddContainerItem(bag, 2120, 1) doAddContainerItem(bag, 2554, 1) doAddContainerItem(bag, 2152, 20) doAddContainerItem(bag, 8601, 1) doAddContainerItem(bag, 2383, 1) doAddContainerItem(bag, 2417, 1) doPlayerAddItem(cid, 2525, 1) doPlayerAddItem(cid, 2463, 1) doPlayerAddItem(cid, 2457, 1) doPlayerAddItem(cid, 2647, 1) doPlayerAddItem(cid, 2643, 1) setPlayerStorageValue(cid, 50000, 1) end end return TRUE end e após verifique se tem essa linha no creaturescripts.xml <event type="login" name="FirstItems" event="script" value="firstitems.lua"/>1 ponto -
1 ponto
-
Vlw cara... eu queria mostrar o lugar todo, e no resto vou melhorar xd realmente... Aproveitando, vai um mapa ae Só não tirei in game porque não tenho servidor nessa versão (preguiça), e a imagem também não ta tão grande.1 ponto
-
[TFS 1.x] Loteria
Administrador reagiu a larissaots por um tópico no fórum
Créditos: luanluciano93 Objetivo É uma loteria, no(s) horario(s) que for definir, é sorteado para algum player um determinado item dentre os items configurados no script, por fim aparece uma mensagem no servidor dizendo quem ganhou e o que recebeu ... Tutorial Crie um arquivo em globalevents/scripts/ com o nome loteria.lua e dentro coloque o código: -- <globalevent name="Loteria1" time="09:00:00" script="loteria.lua" /> local rewards = { {2494, 1}, {2472, 1}, {2160, 22}, {5809, 1}, } function onTime(interval) local players = Game.getPlayers() if #players > 0 and #rewards > 0 then local uid, n = math.random(1, #players), math.random(1, #rewards) local ganhador = players[uid] local reward, count = rewards[n][1], rewards[n][2] if ganhador and reward and count then ganhador:addItem(reward, count) Game.broadcastMessage('O player '.. ganhador:getName()..' recebeu '.. count .. ' '..ItemType(reward):getName()..' na loteria.', MESSAGE_STATUS_WARNING) end end return true end A tag do globalevents.xml esta no script como comentario, basta adiciona-la. Você pode também adicionar outras tags para outros horarios, mas sempre mudando o nome. Por exemplo: <globalevent name="Loteria1" time="09:00:00" script="loteria.lua" /> <globalevent name="Loteria2" time="10:00:00" script="loteria.lua" /> E para editar os items, basta coloca o item_id e quantidade, como na sequencia: local rewards = { {2494, 1}, {2472, 1}, {2160, 22}, {5809, 1}, }1 ponto -
[EDIÇÃO #2] O Melhor Mapa
Administrador reagiu a RetornoDeLaug por um tópico no fórum
Olá pessoal, o responsável pelo OMM era o Gabriel Couto, que saiu da equipe. E era o único com o conteúdo de vocês, acho que vai ter uma pausa no concurso. Espero a compreensão de todos. Talvez eu assuma o concurso, mas a segunda edição vai ter que adiar, ou se todos me mandarem os mapas, estou disposto a fazer o resultado. Obrigado.1 ponto -
O meu também é sem level rs, adiciona no skype lordbaxx, mais fácil!1 ponto
-
kkkkkkkkkkkkkk
Piabeta Kun reagiu a Mudrock por um tópico no fórum
antes de ser fechado fui comunicado e aceito. portando acho que não tem porque tanto alvoroço. Emfim abraços ^^1 ponto -
1 ponto
-
Se o código acima não funcionar, use este: local shinys = { "Venusaur", "Blastoise", "Butterfree", "Beedrill", "Pidgeot", "Rattata", "Raticate", "Raichu", "Golbat", "Paras", "Parasect", "Magmar", "Typhlosion", "Xatu", "Growlithe", "Arcanine", "Tentacruel", "Farfetch'd", "Gengar", "Krabby", "Tauros", "Kingler", "Cubone", "Horsea", "Seadra", "Weezing", "Scyther", "Pinsir", "Crobat", "Zubat", "Tentacool", "Feraligatr", "Machamp", "Meganium", "Alakazam", "Tangela", "Ampharos", "Electabuzz", "Jynx", "Charizard", "Voltorb", "Electrode"} local raros = {"Dragonair", "Dratini", "Giant Magikarp", "Gyarados", "Magmortar", "Electivire", "Salamence", "Mantine"} local specialSummon = { chance = 1, --Chance, em porcentagem, do pokémon especial nascer. pokes = { {"Milotic", "Electivire", "Magmortar", "Salamence"}, --Pokémons que podem ser summonados. {"Brave Venusaur", "Ancient Kingdra", "Hard Rhydon"}, --Pokémons que, quando spawnados, há chance de summonar um dos pokémons acima. }, } local function ShinyName(cid) if isCreature(cid) then if string.find(tostring(getCreatureName(cid)), "Shiny") then local newName = tostring(getCreatureName(cid)):match("Shiny (.*)") doCreatureSetNick(cid, newName) if isMonster(cid) then doSetCreatureDropLoot(cid, false) end end end end local function doSetRandomGender(cid) if not isCreature(cid) then return true end if isSummon(cid) then return true end local gender = 0 local name = getCreatureName(cid) if not newpokedex[name] then return true end local rate = newpokedex[name].gender if rate == 0 then gender = 3 elseif rate == 500 then gender = 4 elseif rate == -1 then gender = 0 elseif math.random(1, 500) <= rate then gender = 4 else gender = 3 end doCreatureSetSkullType(cid, gender) end local function doShiny(cid) if isCreature(cid) then if isSummon(cid) then return true end if getPlayerStorageValue(cid, 74469) >= 1 then return true end if getPlayerStorageValue(cid, 22546) >= 1 then return true end if isNpcSummon(cid) then return true end if getPlayerStorageValue(cid, 637500) >= 1 then return true end --alterado v1.9 if isInArray(shinys, getCreatureName(cid)) then --alterado v1.9 \/ chance = 2.0 --1% chance elseif isInArray(raros, getCreatureName(cid)) then --n coloquem valores menores que 0.1 !! chance = 1 --1% chance else return true end if math.random(1, 500) <= chance*10 then doSendMagicEffect(getThingPos(cid), 18) local name, pos = "Shiny ".. getCreatureName(cid), getThingPos(cid) doRemoveCreature(cid) local shi = doCreateMonster(name, pos, false) setPlayerStorageValue(shi, 74469, 1) else setPlayerStorageValue(cid, 74469, 1) end --/\ else return true end end function onSpawn(cid) registerCreatureEvent(cid, "Experience") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "DirectionSystem") registerCreatureEvent(cid, "CastSystem") if isSummon(cid) then registerCreatureEvent(cid, "SummonDeath") return true end addEvent(function() if isCreature(cid) then if isInArray(specialSummon.pokes[2], getCreatureName(cid)) then if math.random(1, 100) <= specialSummon.chance then local position = getThingPos(cid) doRemoveCreature(cid) doCreateMonster(specialSummon.pokes[1][math.random(#specialSummon.pokes[1])], position) end end end end, 15) addEvent(doShiny, 10, cid) addEvent(ShinyName, 15, cid) addEvent(adjustWildPoke, 5, cid) return true end1 ponto
-
[Action] Sistema Vip Por Sql V3.0 Para Tfs 0.3.5
Natanael Beckman reagiu a Lukeskywalker por um tópico no fórum
OBS: Atualização do script para versoes mais recentes da TFS este post foi atualizado em 08/09/2011 Bom eu fiz a tão esperada atualização do SISTEMA VIP agora ela tem suporte a TFS 0.3.6 e a TFS 0.4 e ela é bem mais facil de instalar e usar basta você descompactar os arquivos na pasta mods que o sistema vip se instala em seu servidor automaticamente logo abaixo está o link do sistema atualizado... So seguir o link abaixo Sistema Vip Por Sql V4.0 Para Tfs 0.4 E Tfs 0.3.6 Bom fiz este script por causa de muitos pedidos espero que gostem. Lembrando que esse script so vai funcionar na TFS 0.3.5 Bom atualizei agora para um arquivo de instalação em XML apenas coloque ele na pasta mods e coloque ele la clique no download abaixo para baixar-lo OBS: ele tem o suporte ao famoso SQLite vip_sistem_install.xml Agora vamos adicionar as funções nos libs primeiramenet vai em data/lib/data.lua abra este arquivo e abaixo de. dofile(getDataDir() .. "lib/compat.lua") Adicione. dofile(getDataDir() .. "lib/vip.lua") Depois de adicionar isso vamos criar o script vip.lua em data/lib. No script você vai adicionar este seguinte codigo abaixo. function isVip(cid) local Query = db.getResult("SELECT `vip` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";") return (isPlayer(cid) == true and (Query:getDataInt("vip") == 1)) and true or false end function getVipTime(cid) local Query = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";") return Query:getDataInt("vip_time") end function getVipTimeByName(Name) local Query = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getAccountIdByName(Name) ..";") return Query:getDataInt("vip_time") end function getVipDays(cid) local Query = db.getResult("SELECT `vip_days` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";") return Query:getDataInt("vip_days") end Agora vamos adicionar o sistema que vai remover a quantidade de dias do VIP automaticamente. Vai em data/globalevents/globalevents.xml abra este arquivo e abaixo de. <globalevent name="clean" interval="7200" event="script" value="clean.lua"/> Adicione. <globalevent name="RemoveVipDays" interval="600" event="script" value="removevip.lua"/> Agora iremos criar o script removevip.lua em data/globalevents/scripts. No script você vai adicionar este seguinte codigo abaixo. function onThink(interval, lastExecution, thinkInterval) Query = db.getResult("SELECT `id`, `vip_time` FROM `accounts` WHERE `accounts`.`vip` = 1") if(Query:getID() == -1) then return true end for i = 1, Query:getRows() do local AccID = Query:getDataInt("id") local VipTime = Query:getDataInt("vip_time") if VipTime >= os.time() then db.executeQuery("UPDATE `accounts` SET `vip_days` = ".. math.ceil((VipTime - os.time()) / 86400) .." WHERE `accounts`.`id` = ".. AccID ..";") else db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `accounts`.`id` = ".. AccID ..";") db.executeQuery("UPDATE `accounts` SET `vip_days` = 0 WHERE `accounts`.`id` = ".. AccID ..";") db.executeQuery("UPDATE `accounts` SET `vip` = 0 WHERE `accounts`.`id` = ".. AccID ..";") db.executeQuery("UPDATE `players` SET `reset_temple` = 1 WHERE `players`.`account_id` = ".. AccID ..";") end Query:next() end Query:free() return true end Agora vamos adicionar o sistema que joga o player para o Temple quando acaba a VIP dele. Vai em data/creaturescripts/creaturescripts.xml abra este arquivo e abaixo de <event type="login" name="PlayerLogin" event="script" value="login.lua"/> Adicione. <event type="login" name="VipCheck" event="script" value="vipcheck.lua"/> Agora vamos adicionar o script vipcheck.lua em data/creaturescripts/scripts. No script você vai adicionar este seguinte codigo no spoiler abaixo. Lembrando que você tem que por se você tem que configurar se usa rook sistem. Se você não usar é so colocar o ID do temple da cidade principal. Mas se você ativa o rook sistem você tera que por o ID da cidade de rook e da cidade principal mais você so ira usar o sistema de rook se você usar rook em seu ot. local config = { RookSistem = "no", RookTempleID = 1, MainTempleID = 2 } config.RookSistem = getBooleanFromString(config.RookSistem) function getResetTemple(cid) local Query = db.getResult("SELECT `reset_temple` FROM `players` WHERE `players`.`id` = ".. getPlayerGUID(cid) ..";") return (isPlayer(cid) == true and (Query:getDataInt("reset_temple") == 1)) and true or false end function goRookTemple(cid) doTeleportThing(cid, getTownTemplePosition(config.RookTempleID)) doSendMagicEffect(fromPos, CONST_ME_POFF) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) db.executeQuery("UPDATE `players` SET `reset_temple` = 0 WHERE `players`.`id` = ".. getPlayerGUID(cid) ..";") end function goMainTemple(cid) doTeleportThing(cid, getTownTemplePosition(config.MainTempleID)) doPlayerSetTown(cid, config.MainTempleID) doSendMagicEffect(fromPos, CONST_ME_POFF) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) db.executeQuery("UPDATE `players` SET `reset_temple` = 0 WHERE `players`.`id` = ".. getPlayerGUID(cid) ..";") end function onLogin(cid) fromPos = getCreaturePosition(cid) if getResetTemple(cid) == true then if (config.RookSistem) then if isRookie(cid) == true then goRookTemple(cid) else goMainTemple(cid) end else goMainTemple(cid) end end return true end Bom o sistema ja está completo mais falta a parte do tile que so vips podem passar e o comando para adicionar o vip e o comando que o player pode verificar quantos dias vip dele ainda tem então vamos la. Agora vamos ate data/talkactions/talkactions.xml abra ele e abaixo de. <talkaction log="yes" words="/addskill" access="5" event="function" value="addSkill"/> Adicione. <talkaction log="yes" words="/addvip" access="5" event="script" value="addvip.lua"/> <talkaction log="yes" words="!checkvip" event="script" value="addvip.lua"/> Agora iremos criar o script addvip.lua em data/talkactions/scripts. No script você vai adicionar este seguinte codigo abaixo. function onSay(cid, words, param, channel) local Data = string.explode(param, ",") if (words:sub(2, 2) == "a") then if (not Data) then doPlayerSendCancel(cid, "Insira um nome.") return true elseif (not Data[2] or Data[2] == "") then doPlayerSendCancel(cid, "Insira a quantidade de dias de vip que ira adionar ao player.") return true elseif not isNumber(Data[2]) then doPlayerSendCancel(cid, "Use apenas numeros.") return true end local Target = db.getResult("SELECT `name` FROM `players` WHERE `name` = " .. db.escapeString(Data[1]) .. ";") if (Target:getID() ~= -1) then if (getPlayerByName(Data[1])) then doSendMagicEffect(getCreaturePosition(getPlayerByName(Data[1])), CONST_ME_MAGIC_GREEN) end if getVipTimeByName(Data[1]) == 0 then db.executeQuery("UPDATE `accounts` SET `vip_time` = 86400 * ".. Data[2] .." + ".. os.time() .." WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";") else db.executeQuery("UPDATE `accounts` SET `vip_time` = `accounts`.`vip_time` + (86400 * ".. Data[2] ..") WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";") end db.executeQuery("UPDATE `accounts` SET `vip` = 1 WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";") db.executeQuery("UPDATE `accounts` SET `vip_days` = `accounts`.`vip_days` + ".. Data[2] .." WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foi adicionado ".. Data[2] .." dias de vip ao player ".. Data[1] ..".") else doPlayerSendCancel(cid, "O player ".. Data[1] .." não existe.") end Target:free() else if getVipDays(cid) == 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não é um jogador vip.") elseif getVipDays(cid) >= 2 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. getVipDays(cid) .." dias de vip.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem 1 dia de vip.") end end return true end Bom agora por ultimo o tile que so vip passa vamos em data/movements/scripts/tiles.lua e abaixo de. if(not isPlayerGhost(cid)) then doTransformItem(item.uid, increasingItems[item.itemid]) end Adicione. if item.actionid == 7777 then if (isVip(cid) == false) then pushBack(cid, position, fromPosition, true) end return true end Bom terminamos detalhe use o tile ID 426 com actionID 7777 para vip tile um pequeno detalhe no map editor coloque o tile como NO LOGOUT AREA para ninguem fazer bugs de M WALL para passar para area VIP. Bom para saber como usar é simples para adicionar a vip la vai um explo de adicionar 30 dias no player Luke sky walker /addvip Luke sky walker, 30 E para o player veifica quantos dias de vip ele tem ele usa o comando !checkvip Bom espero que seja util eu testei o script mas ainda pode ter bugs!!! Por favor não tirem os creditos deste script! EDIT Eu adicionei math.ceil no removevip.lua provavelmente agora ele tenha suporte a SQLite! Foi arrumado o bug do reset temple script atualizado vipcheck.lua (não testado caso ainda tenha bug pm ME!) Foi adicionado o vip_sistem_install.xml para instalação automatica do sistema no SQL do servidor com suporte a MySql e SQLite Atualizando o vip_sistem_install.xml para versão 2.0 junto com o fix para funcionar em MySql que não tava funcionando corretamente.1 ponto