Ir para conteúdo
  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo

Fóruns

  • Portal Tibiaking
    • Portal
    • Server Oficial TibiaKing
    • Sobre o Fórum
    • Projetos Open Source
    • Regras
  • OTServer Tibia & Derivados
    • Suporte & Pedidos
    • OTServer Downloads
    • OTServer Scripts
    • Ferramentas OpenTibia
    • Linguagens de Programação
    • Mapas
    • Websites
    • Show Off
    • Gráficos e Design
    • Divulgações
  • Tibia e Bots
    • Tibia
    • Bots & Macro
  • Diversos
    • Playground (Off-topic)

Calendários

  • Calendário Oficial
  • Calendário de OTServs
  • Calendários Diversos

Categorias

  • Oficial TibiaKing
    • Premium Forgottenserver
  • Conteúdo da Comunidade
    • Sprites

Categorias

  • Articles

Blogs

Não há resultados

Product Groups

  • Advertisement

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...

Encontrado 41 registros

  1. Fala TKZIANOS de plantão WTF? AUEHAUHEA Mas ok... Venho hoje trazer a vocês um sistema de ganhar uma recompensa ao conquistar determinado nível (Configurável) Como funciona? Quando o jogador conquistar determinado level ele recebe como recompensa X item ou GOLD! Mais Absolute, o cara vai ficar se matando e upando de novo para ficar pegando a recompensa... NÃO! Quando o player conquista o level ele recebe uma STORAGE, essa storage faz com que salve isto, ou seja faz com que marque que o jogador já recebeu, se ele tentar burlar o sistema ele não vai receber pelo fato da tal STORAGE já estar gravada nele =p Em data/creaturescripts/scripts crie um arquivo chamado uplevelabsolute.lua e coloque o seguinte dentro: function onAdvance(cid, skill, oldLevel, newLevel) local config = { [50] = {item = 2160, count = 5}, [100] = {item = 2160, count = 15}, [150] = {item = 2160, count = 20}, [200] = {item = 2160, count = 25}, [250] = {item = 2160, count = 30}, [300] = {item = 2160, count = 50}, [350] = {item = 4891, count = 1}, [400] = {item = 4892, count = 1}, } if skill == 8 then for level, info in pairs(config) do if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then doPlayerAddItem(cid, info.item, info.count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Parabéns, você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".") local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'" setPlayerStorageValue(cid, 30700, sat) end end end return TRUE end Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha: <event type="advance" name="UpAbsolute" event="script" value="uplevelabsolute.lua"/> Em data/creaturescripts/scripts/login.lua abaixo de registerCreatureEvent(cid, "Mail") adicione a seguinte linha: registerCreatureEvent(cid, "UpAbsolute") Pronto, você implantou o sistema em seu servidor. Como configurar: [50] = {item = 2160, count = 5}, [50] = level que o player vai receber a tal recompensa 2160 = item que o player vai receber, no caso 2160 é o Crystal Coin count = 5 = quantidade do item, no caso 5 Crystal Coins Observação: Ao atingir o level o player receberá uma mensagem e o prêmio estará diretamente em sua backpack. Qualquer dúvida peço que poste =D Até o próximo sisteminha bb's.
  2. Eai galera, esse script eu fiz para um membro aqui do TibiaKing no suporte e achei que ficou bem legal então decidi postar. Explicação: Ao tomar um dano maior que 300, se o player tiver usando a glacier robe, uma área em volta dele vai ser congelada e todos dentro dessa área ficarão com slow. Caso o player estiver com o full glacier set, além do paralyze, as pessoas dentro da área receberão dano de freezing crie um arquivo em creaturescripts\scripts chamado glacierrobe.lua e adicione isso daqui dentro dele agora vá em creaturescripts\scripts e procure um arquivo chamado login.lua. dentro dele coloque isso (de preferencia embaixo dos outros registerCreatureEvent): registerCreatureEvent(cid, "glacierrobe") Lembre-se que se vc quiser repetir isso pra outros set's você tem que repetir todo o processo, tanto no creaturescripts.xml quanto no login.lua no meu server além do set glacier eu uso os outros 3 set's elementais, ficando assim: EDIT:: Algumas imagens pra vocês verem como o script funciona:
  3. Para quem não sabe como funciona o script : O player precisa usar um passaporte para poder entrar passar por tal lugar.(pode ser usado de item donation para ter acesso a area vip ou coisa do tipo) Testado em: TFS 0.3.6 e 0.4 Dev. • Adicionando o script • Em "data/actions/scripts/passaporte.lua" : function onUse(cid, item, frompos, item2, topos) if item.itemid == 1954 then local playerpos = getCreaturePosition(cid) doRemoveItem(item.uid,1) setPlayerStorageValue(cid,19200,1) doSendMagicEffect(playerpos, 12) doCreatureSay(cid, "Parabens!, voce verificou seu passaporte, agora voce pode entrar no barco!.", TALKTYPE_ORANGE_1) end end Em "data/actions/actions.xml" : <action itemid="1954" script="passaporte.lua" /> Agora em "data/movements/scripts/passagem.lua" : function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) == true then if getPlayerStorageValue(cid, 19200) == -1 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid,22, "Voce precisa do passaporte para entrar no barco!.") doSendMagicEffect(getPlayerPosition(cid), 2) else doPlayerSendTextMessage(cid,22, 'Seu passaporte foi verificado, voce pode entrar no barco!.') doSendMagicEffect(getPlayerPosition(cid), 22) end end return true end Em "data/movements/movements.xml" : <movevent type="StepIn" tileitem="0" itemid="9120" event="script" value="passagem.lua"/> • Configurando •
  4. Galera é um script muito simples, porém pra mim é muito ÚTIL. Abra a pasta data/globalevents/scripts crie um arquivo .lua com o nome GlobalSave.lua, em seguida adicone o code: function prepareShutdown(minutes) if(minutes <= 0) then doSetGameState(GAMESTATE_SHUTDOWN) return false end if(minutes == 1) then doBroadcastMessage("Server is going down in " .. minutes .. " minute for global save, please log out now!") elseif(minutes <= 3) then doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save, please log out.") else doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save.") end shutdownEvent = addEvent(prepareShutdown, 60000, minutes - 1) return true end function onTime() return prepareShutdown(5) -- Quantos minutos pra executar o ServeSave. end Ajustes: Quando quiser modificar os minutos altere: -return prepareShutdown(5) - (5) = 5 minutos, eu recomendo no mínimo 5 minutos, em outras palavras não mexa. Em globalevents.xml adicione a tag seguinte: <globalevent name="GlobalSave" time="05:30" event="script" value="GlobalSave.lua"/> No meu ServeSave é feito as 05:30 da manhã, modifique pro horário desejado! Em config.lua verifique essa regra: Se tiver TRUE deixa, assim ele fecha o .exe se não tiver no seu config.lua não tem problema closeInstanceOnShutdown = true - - - Esse tutorial é só isso, clique em GOSTEI, e comente no tópico, muito obrigado! -------------------------------------------------------------------------------------------------------------------------------------------------------- AUTO RESTART -------------------------------------------------------------------------------------------------------------------------------------------------------- Pra você que utiliza Windows esse é perfeito: Dezon OT Admin [restarter] Pra você que utiliza Linux: Baixe esse arquivo, TFS.SH, bote dentro da pasta do seu OT. Esse arquivo está configurado pra abrir outro arquivo chamado tfs caso o seu seja outro nome mude pra esse, tfs. Sempre que for abrir seu OT execute esse comando ./tfs.sh& e assim toda vez que o OT cair ele renicia automaticamente.
  5. Evento Devovorga testado TFS 1.0 tíbia 10.37 mapa global breve explicação do evento obejetivo: mata os 5 bosses do evento rise devovorga para liberar acesso a sala do boss devovorgar com tempo de 5 horas para conclusão do evento. bosses: Anmothra Irahsae Teneshpar Phrodomo Chikhaton vamus para os scripts Data/creaturescripts/scripts cria uma pasta com nome "evento devovorga" dentro da pasta cria arquivo com nome bossdevovorga.lua copia e cola tudo dentro: local bosses = { ["devovorga"] = 206 } function onKill(cid, target) if(bosses[string.lower(getCreatureName(target))]) then if(string.lower(getCreatureName(target)) == "") then setGlobalStorageValue(bosses[string.lower(getCreatureName(target))], getGlobalStorageValue(bosses[string.lower(getCreatureName(target))]) < 1 and 1 or 2) if(getGlobalStorageValue(bosses[string.lower(getCreatureName(target))]) == 2) then end return true end broadcastMessage("Thanks to the mighty and fearless Tibians who drove Devovorga back into her abyss, your regeneration has been improved.", MESSAGE_EVENT_ADVANCE) broadcastMessage("You made it - Devovorga, the incredibly powerful weapon sealed deep below Vengoth, was destroyed.", MESSAGE_EVENT_ADVANCE) broadcastMessage("Upon her death, energy was released all over the world - the next month, it will boost your health and mana regeneration.", MESSAGE_EVENT_ADVANCE) broadcastMessage("Congratulations, Tibians!", MESSAGE_EVENT_ADVANCE) setGlobalStorageValue(bosses[string.lower(getCreatureName(target))], 2) addEvent(setGlobalStorageValue, 3 * 60 * 1000, bosses[string.lower(getCreatureName(target))], 0) end return true end proximo passo Data/creaturescripts/scripts cria uma pasta com nome "evento devovorga" dentro da pasta cria arquivo com nome bosses.lua copia e cola tudo dentro: local tpId = 11798 local tps = { ["Anmothra"] = {pos = {x=32955, y=31519, z=9}, toPos = {x=32950, y=31514, z=9}, time = 18000}, ["Irahsae"] = {pos = {x=32942, y=31514, z=9}, toPos = {x=32937, y=31510, z=9}, time = 18000}, ["Teneshpar"] = {pos = {x=32947, y=31506, z=9}, toPos = {x=32936, y=31524, z=9}, time = 18000}, ["Phrodomo"] = {pos = {x=32937, y=31521, z=9}, toPos = {x=32913, y=31515, z=9}, time = 18000}, ["Chikhaton"] = {pos = {x=32913, y=31527, z=9}, toPos = {x=32946, y=31516, z=10}, time = 18000}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em 5 horas corra grandes aventureiros", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end proximo passo Data/creaturescripts abra o arquivo creaturescripts.xml adicione essas duas linhas: <event type="death" name="teleport" script="evento devovorga/bosses.lua"/> <event type="kill" name="bossdevovorga" script="evento devovorga/bossdevovorga.lua"/> arquivos creaturescripts finalizado proximo passo Data/movements/scripts criar um arquivo chamado teleportarea.lua copiar e colar tudo dentro: function onStepIn(cid, item, position, fromPosition) local teleport = { action = item.actionid, [17001] = {x=32975, y=32427, z=8}, [17002] = {x=32976, y=32429, z=7}, [17003] = {x=32634, y=32305, z=8}, [17004] = {x=32629, y=32329, z=7}, [17005] = {x=32131, y=31835, z=8}, [17006] = {x=32169, y=31829, z=7}, [17007] = {x=31936, y=31538, z=8}, [17008] = {x=31965, y=31582, z=7}, [17009] = {x=33325, y=31741, z=8}, [17010] = {x=33325, y=31741, z=7}, [17011] = {x=32956, y=31516, z=8}, [17012] = {x=32949, y=31520, z=7}, [17013] = {x=32956, y=31519, z=9}, [17014] = {x=32943, y=31514, z=9}, [17015] = {x=32947, y=31507, z=9}, [17016] = {x=32937, y=31522, z=9}, [17017] = {x=32948, y=31520, z=7} } if(not isPlayer(cid)) then return true end doTeleportThing(cid, teleport[item.actionid]) return true end proximo Data/movements/scripts criar um arquivo chamado devo.lua copiar e colar tudo dentro: local teleports2 = { [2181] = {text = "Ate o Proximo Evento", newPos = {x = 32948, y = 31520, z = 7}, storage = 7}, } local teleports = { [2182] = {boss = true, text = "Parabéns você concluiu o Evento Rise of Devovorga", bossStorage = 206, newPos = {x = 32945, y = 31521, z = 9}, storage = 7}, } function onStepIn(cid, item, position, lastPosition) if (item.uid == 2181) then if(getPlayerStorageValue(cid,1050) <= teleports2[item.uid].storage) then setPlayerStorageValue(cid, 1050, teleports2[item.uid].storage) end doTeleportThing(cid, teleports2[item.uid].newPos) doSendMagicEffect(teleports2[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports2[item.uid].text, TALKTYPE_ORANGE_1) return true end if(teleports[item.uid].boss) then if(getGlobalStorageValue(teleports[item.uid].bossStorage) == 2) then if(getPlayerStorageValue(cid,1050) <= teleports[item.uid].storage) then setPlayerStorageValue(cid, 1050, teleports[item.uid].storage) end doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) else doTeleportThing(cid, {x = 32912, y = 31515, z = 10}) doSendMagicEffect({x = 32912, y = 31515, z = 10}, CONST_ME_TELEPORT) doCreatureSay(cid, "Precisa Concluir o evento Rise of Devovorga.", TALKTYPE_ORANGE_1) end return true end if(teleports[item.uid].storage) then if(getPlayerStorageValue(cid, 1050) >= teleports[item.uid].storage) then doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) else doTeleportThing(cid, lastPosition) doSendMagicEffect(getCreaturePosition(cid),10) doCreatureSay(cid, 'You don\'t have enough energy to enter this portal', TALKTYPE_ORANGE_1) end return true end if(teleports[item.uid]) then doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) return true end return true end proximo passo Data/movements abra o arquivo movements.xml adicione essas duas linhas: <movevent event="StepIn" fromaid="17001" toaid="17016" script="teleportarea.lua"/> <movevent event="StepIn" fromuid="2181" touid="2182" script="devo.lua"/> arquivos movements finalizado proximo arquivos Data/raids criar um arquivo chamado devovorga.lua copiar e colar tudo dentro: <raid> <announce delay="1000" type="Event" message="Something is rumbling deep underground all over the world" /> <announce delay="20000" type="Event" message="The Power of Devovorga has risen again." /> <singlespawn delay="20000" name="Anmothra" x="32634" y="32309" z="8" /> <announce delay="30000" type="Event" message="The Fury of Devovorga has risen again." /> <singlespawn delay="30000" name="Irahsae" x="32967" y="32405" z="8" /> <announce delay="40000" type="Event" message="The Dark knowledge of Devovorga has risen again." /> <singlespawn delay="40000" name="Teneshpar" x="31932" y="31524" z="8" /> <announce delay="50000" type="Event" message="The Soul of Devovorga has risen again." /> <singlespawn delay="50000" name="Phrodomo" x="32135" y="31833" z="8" /> <announce delay="60000" type="Event" message="The Hatred of Devovorga has risen again." /> <singlespawn delay="50000" name="Chikhaton" x="33330" y="31741" z="8" /> <singlespawn delay="1000" name="Spawn of Devovorga" x="32931" y="31516" z="10" /> <singlespawn delay="2000" name="Spawn of Devovorga" x="32925" y="31515" z="10" /> <singlespawn delay="3000" name="Spawn of Devovorga" x="32925" y="31521" z="10" /> <singlespawn delay="4000" name="Spawn of Devovorga" x="32917" y="31521" z="10" /> <singlespawn delay="5000" name="Spawn of Devovorga" x="32914" y="31514" z="10" /> <singlespawn delay="6000" name="Devovorga" x="32921" y="31516" z="10" /> </raid> proximo passo Data/raids abra o arquivo Raids.xml adicione essa linhas: <raid name="Devovorga" file="Devovorga.xml" interval2="1440" chance="1" margin="60" enabled="yes"/> download da pasta dos monstro do evento finalizado os códigos vou explica como ativa o evento no momento que usar o comando /raid devovorga o evento iniciará assim sumonando cada mini Boss pra seu lugar os jogadores terá 5 horas no momento que matarem o primeiro mini Boss passando as 5 horas e não matarem os mini bosses ou ate mesmo o Boss devovorga o evento falhara quem estive dentro da sala ficara ate o final seja quando morre ou sair da sala do Boss assim não voltara mais não irei explica código por código porque esta tudo pronto para mapa global fica a critério de cada um não sou script ( fiz uma gambiarra esta funcionando 100%) apenas tentei fazer algo diferente OBS.: sala de premiação não finalizei pois fica a critério de cada um o que fazer (minha sugestão se os jogadores concluir o evento no próximo salve serve coloca Double XP pra galera hehehehe) fora os baus que darão os itens aos jogadores. Scan dos arquivos anexados detalhe para nao buga os portais como usei o portal dimensional portal id 11798 o servidor nao reconhece como teleport vai buga abra: pasta itens abra itens.xml procure por: <item fromid="5023" toid="5024" article="a" name="magic forcefield"> <attribute key="type" value="teleport" /> <attribute key="description" value="You can see the other side trough it." /> </item> substitua por esse: <item fromid="11798" toid="11799" article="a" name="dimensional portal"> <attribute key="type" value="teleport" /> <attribute key="description" value="You can see the other side trough it." /> </item> procure por: <item id="11798" article="a" name="dimensional portal" /> substitua por esse: <item id="5023" article="a" name="magic forcefield" /> pronto Antes de mais nada não sei se postei no lugar correto peço aos moderadores que se não tiver na área correta que movam para certa fico grato se copiar e colar pelo menos mantem os creditos fico grato
  6. Salve galerinha do TK. A tempos algumas pessoas vem me pedindo sistema simples de anunciar morte, visto bastante em servidores de wars, baiaks e demais servidores. Então resolvi fazer e trazer aqui para vocês do TK. Sistema simples e legas, quanto um player morrer para outro player irá aparecer no Default: "Nome do player que morreu" acabou de ser humilhado pelo jogador "Nome do player que matou" Acho que esse sistema deixa a galera louca, caçando players e zoando então resolvi trazer pra cá. Primeiramente em creaturescripts.xml adicione a seguinte linha: <event type="kill" name="anunciarmorte" event="script" value="anunciar_morte.lua"/> Pós adicionar, crie um arquivo com o nome de anunciar_morte.lua e coloque dentro da pasta creaturescripts/scripts com o seguinte conteúdo: function onKill(cid, target, lastHit) if not isPlayer(target) or not isPlayer(cid) then return true end doBroadcastMessage(""..getCreatureName(target).."["..getPlayerLevel(target).."] acabou de ser humilhado pelo jogador "..getCreatureName(cid).."["..getPlayerLevel(cid).."].", MESSAGE_STATUS_CONSOLE_ORANGE) return true end E por fim vá até creaturescripts/scripts e abra seu login.lua, abaixo de: registerCreatureEvent(cid, "Mail") ou qualquer linha parecida com registerCreature... adicione a seguinte linha: registerCreatureEvent(cid, "anunciarmorte") Pronto, finalizado! Só isso? Sim script simples e divertido! Qualquer dúvida me comunique Créditos: Absolute.
  7. Ae galera do TK, não quero fazer propaganda de nada mas sempre ajudei o pessoal do tibiaking, e com seu fim, resolvi procurar outro fórum para me posicionar, quando conheci aqui não botava muita Fé mas ao longo do tempo percebi que o TK merecia meu respeito, pois ao contrário do tibiaking ele defende o OpenSource, afinal de tudo resolvi fazer minha primeira contribuição para o TK. Defense System Informações:Esse sistema é bem simples, consiste em um sistema que ignora o ataque do oponente dependendo do nivel de defense. Sim, sei que o próprio tibia já tem um sistema desse, mas acontece que para servidores baiak fastattack isso torna as coisas mais emocionantes. Descrição: O player oponente tem 10 porcento de chance máxima de defender o próximo ataque. Testado em Versão 8.60. Instalação Vá em data/creaturescripts/scripts e cria um arquivo chamado defense.lua, dentro dele coloque. Logo em seguida vá até data/creaturescripts abra o arquivo creaturescripts.xml e adicione essa tag. Agora vá em data/creaturescripts/scripts e abra o arquivo login.lua e adicione essa tag. Em seguida vá a pasta data/actions/scripts e cria um arquivo chamado defense.lua, dentro dele coloque isso. Agora vá ao arquivo data/actions/actions.xml e adicione essa tag. Créditos: 100% - Gabisa00 Dúvidas, bugs, sugestões, somente no tópico. Gostou do Sistema Faça Seu Pedido Aqui!
  8. Para quem não sabe como funciona o script : Cada vocation ao atingir X level ganha uma X recompensa(podendo ganhar mais de um item por level). • Adicionando o script • Em "data/creaturescripts/scripts/vocreward.lua" : local c = { [{1,5}] = { [13] = {items = {{itemid = 2191, count = 1}}, storage = 40953}, [19] = {items = {{itemid = 2188, count = 1}}, storage = 40954}, [22] = {items = {{itemid = 8921, count = 1}}, storage = 40955}, [26] = {items = {{itemid = 2189, count = 1}}, storage = 40956}, [33] = {items = {{itemid = 2187, count = 1}, {itemid = 2152, count = 25}}, storage = 40957}, [37] = {items = {{itemid = 8920, count = 1}, {itemid = 2152, count = 50}}, storage = 40958}, [42] = {items = {{itemid = 8922, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} }, [{2,6}] = { [13] = {items = {{itemid = 2186, count = 1}}, storage = 40953}, [19] = {items = {{itemid = 2185, count = 1}}, storage = 40954}, [22] = {items = {{itemid = 8911, count = 1}}, storage = 40955}, [26] = {items = {{itemid = 2181, count = 1}}, storage = 40956}, [33] = {items = {{itemid = 2183, count = 1}, {itemid = 2152, count = 25}}, storage = 40957}, [37] = {items = {{itemid = 8912, count = 1}, {itemid = 2152, count = 50}}, storage = 40958}, [42] = {items = {{itemid = 8910, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} }, [{3,7}] = { [12] = {items = {{itemid = 2389, count = 5}}, storage = 40953}, [16] = {items = {{itemid = 2389, count = 10}}, storage = 40954}, [20] = {items = {{itemid = 3965, count = 10}}, storage = 40955}, [25] = {items = {{itemid = 7378, count = 10}}, storage = 40956}, [30] = {items = {{itemid = 2456, count = 1}, {itemid = 2544, count = 100}}, storage = 40957}, [35] = {items = {{itemid = 7364, count = 100}, {itemid = 2152, count = 75}}, storage = 40958}, [40] = {items = {{itemid = 7365, count = 100}, {itemid = 2160, count = 1}}, storage = 40959} }, [{4,8}] = { [15] = {items = {{itemid = 2409, count = 1}}, storage = 40953}, [30] = {items = {{itemid = 2392, count = 1}, {itemid = 2152, count = 75}}, storage = 40957}, [40] = {items = {{itemid = 2407, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} } } function onAdvance(cid, skill, oldlevel, newlevel) if skill ~= SKILL__LEVEL then return true end for voc, x in pairs(c) do if isInArray(voc, getPlayerVocation(cid)) then for level, z in pairs(x) do if newlevel >= level and getPlayerStorageValue(cid, z.storage) ~= 1 then local text = "" for v = 1, #z.items do count, info = z.items[v].count, getItemInfo(z.items[v].itemid) local ret = ", " if v == 1 then ret = "" elseif v == #z.items then ret = " and " end text = text .. ret text = text .. (count > 1 and count or info.article).." "..(count > 1 and info.plural or info.name) doPlayerAddItem(cid, z.items[v].itemid, z.items[v].count) end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabens, voce alcancou o level "..level.." e obteve "..text..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_YELLOW) setPlayerStorageValue(cid, z.storage, 1) end end end end return true end Em "data/creaturescripts/creaturescripts.xml" : <event type="advance" name="VocReward" event="script" value="vocreward.lua"/> Em "data/creaturescripts/scripts/login.lua" : registerCreatureEvent(cid, "VocReward") • Configurando •
  9. Fala galerinha do TK, já vi gente pedindo aqui e por PM para mim o script de dar uma porcentagem a mais de exp para jogadores VIP. Então venho trabalhando com o lindo do xWhiteWolf para disponibilizar esse sisteminha simples e 100% funcional. Como funciona: Quando qualquer player logar irá aparecer a mensagem: Adquira sua VIP ACCOUNT "seusite" e obtenha X% a mais de EXP para facilitar sua hunt. Quando qualquer player logar e possuir VIP ACCOUNT irá aparecer: Você é um jogador vip, possui X% a mais de exp do que os jogadores free's. Diferente de muitos scripts já visto, a mensagem aparecerá em POP-UP quando o player logar (POP-UP é aquela janelinha que aparece para fechar, caixa de notificações ) Vamos ao script/instalação: Em data/creaturescritps/scripts crie um arquivo com o nome tkexp.lua e adicione dentro: function onLogin(cid) local rate = 1.5 -- 50% local config = { welvip = "Você é um jogador vip, possui "..((rate - 1)*100).."% a mais de exp do que os jogadores free's", not_vip = "Adquira sua vip em nosso site www.tibiaking.com e obtenha "..((rate - 1)*100).."% a mais de EXP para facilitar sua hunt!", s = 13540, -- storage vip } if getPlayerStorageValue(cid, config.s) - os.time() >= 1 then doPlayerSetExperienceRate(cid, rate) doPlayerPopupFYI(cid, config.welvip) else doPlayerPopupFYI(cid, config.not_vip) end return TRUE end Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha: <event type="login" name="tkexp" script="tkexp.lua"/> Em data/creaturescripts/scritps abra o login.lua e embaixo de registerCreatureEvent(cid, "Frags") ou qualquer registerCreture... adicione a seguinte linha: registerCreatureEvent(cid, "tkexp") Pronto! Importante: Configurando: local rate = 1.5 -- 50% - Rate está 1.5 ou seja 1.0 = padrão, 1.5 = padrão + 0.5 = 50%, por exemplo: caso queira adicionar 30% a mais de exp para os vips use 1.3% (padrão de 1.0 mais 0.3 = 1.3) welvip = mensagem que aparecerá quando o player logar avisando que está vip e possui a porcentagem a mais de EXP not_vip = verifica que o player não é vip e mostra a mensagem fazendo um "Marketing" para comprarem mostrando o benefício s = 13540, = Aqui a storage da sua VIP Account, você poderá ver em suas libs, cada servidor tem um número, a maioria usa 13540 mas é importante verificar Tudo ok galera Caso não entendeu ou tenha alguma dúvida não tenha vergonha de perguntar, afinal ninguém nasceu sabendo não é? Espero que gostem e usem Até o próximo. Absolute.
  10. Bom... decidi postar agora o script que eu fiz para barrar os botters de fast attack. Primeiro, crie um arquivo chamado "antiBot.lua" em "data\creaturescripts\scripts" e nele adicione o seguinte conteúdo: -- counts physicals, casts .... [player name : creature cid] playerAttacksMade = {} playerActivateTime = {} playerBlocked = {} function tablelength(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end function onLogin(cid) if isPlayer(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Loading Anti Bot... done.' ) playerAttacksMade[cid] = {} playerActivateTime[cid] = {} playerBlocked[cid] = false end return true end function onLogout(cid) if isPlayer(cid) then playerAttacksMade[cid] = nil playerActivateTime[cid] = nil playerBlocked[cid] = nil end return true end function onStatsChange(cid, attacker, type, combat, value) local maxAttacks = { 6, --pos 1 6, --pos 2 6, --pos 3 6, --pos 4 7, --pos 5 7, --pos 6 7, --pos 7 7, --pos 8 } if not type == STATSCHANGE_HEALTHLOSS or not isPlayer(attacker) then return true end if value <= 0 then return true end if playerAttacksMade[attacker][cid] == nil then playerAttacksMade[attacker][cid] = 0 playerActivateTime[attacker][cid] = os.time() end local currentTime = os.time() --TESTE --doPlayerSendTextMessage(attacker, MESSAGE_STATUS_CONSOLE_ORANGE, playerAttacksMade[attacker][cid] .. '________' .. attacker .. '_____' .. cid .. '______' .. currentTime .. '_______' .. playerActivateTime[attacker][cid] ) if currentTime >= playerActivateTime[attacker][cid] then playerActivateTime[attacker][cid] = currentTime + 1 playerAttacksMade[attacker][cid] = 0 else playerAttacksMade[attacker][cid] = playerAttacksMade[attacker][cid] + 1 end if playerAttacksMade[attacker][cid] > maxAttacks[getPlayerVocation(attacker)] then playerBlocked[attacker] = true doBroadcastMessage('O player ' .. getPlayerName(attacker) .. ' esta usando bot de fast attack. O seu ataque foi travado ate que ele relogue.', 21) doShowTextDialog(attacker,1952,"PARE DE USAR ELFBOT! Seu ataque foi bloqueado. Para destravar basta relogar. Obrigado. (Sistema exclusivo do ot)") return FALSE end return TRUE end function onCombat(cid, target) if isPlayer(cid) then if not playerBlocked[cid] then registerCreatureEvent(target, "AntiBot2") else return false end end return true end function onCast(cid, target) if isPlayer(cid) then if playerBlocked[cid] then return false end end return true end e em "creaturescripts.xml", encontrado em "data\creaturescripts" adicione: <event type="combat" name="AntiBot1" event="script" value="antiBot.lua"/> <event type="statschange" name="AntiBot2" event="script" value="antiBot.lua"/> <event type="login" name="AntiBot3" event="script" value="antiBot.lua"/> <event type="logout" name="AntiBot4" event="script" value="antiBot.lua"/> <event type="cast" name="AntiBot5" event="script" value="antiBot.lua"/> Agora vou explicar a parte configurável: local maxAttacks = { 6, --pos 1 6, --pos 2 6, --pos 3 6, --pos 4 7, --pos 5 7, --pos 6 7, --pos 7 7, --pos 8 } Aqui você vai modificar qual o número máximo de ações de combate (que dão dano) que certa vocação poderá dar. Posição 1 é Sorcerer, 2 é Druid, 3 é Paladin, 4 é Knight e assim por diante.... Escolha bem esses números! Caso você erre, ele irá ficar detectando erradamente. Por exemplo,vamos supor que o knight tenha o fastAttack em 500ms (logo ele executará 2 ataques por segundo) e que sua magia de dano de menor exhaust tenha um exhaust de apenas 600ms, logo o numero maximo de ataques dele por segundo será 4 (cuidado quando spells de dano diferentes puderem ser usadas ao mesmo tempo, daí você terá de acrescentar mais 1 ao número de ataques por segundo. Por favor, testem e me falem o que acharam. Espero que ajude a tirar os botters de seu server. P.S.: Não me importo que roubem meus créditos e/ou postem em outros fórums. É bom espalhar esse script uma vez que botters nos servers 8.6 é muito comum.
  11. Nome: Experiencia para Guild Função: A pedidos de um membro do forum (TioSlash). Aqui está um script que ira adicionar uma porcentagem de Experiência por jogadores online. Exemplo: Ao alcançar 5 jogadores da Guild Online, todos que estiverem online recebem 2% de xp adicional por jogador. Ou seja, um total de +10% de xp. Bom para servidores com bastante RPG, incentivando a cooperação. Atualizações: Dia 17/08/2014 Versão: Testada somente na "10.31". (OTX Server - Galaxy) Créditos: Kazuza - (eu) Por ter criado. TioSlash - Pela Ideia. Vodkart - Por ter achado a função dele que retorna os jogadores da Guild ( sem ela com meu nivel de script não teria conseguido). xWhiteWolf - Por uma ajudinha. "Pasta Servidor > Data > Creaturescripts > Scripts" crie "ExpGuild.lua". function getGuildMembersOnline(GuildId) local players,query = {},db.getResult("SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. GuildId .. ");") if (query:getID() ~= -1) then repeat table.insert(players,query:getDataString("name")) until not query:next() query:free() end return #players > 0 and players or false end function onLogin(cid) local guild_id = getPlayerGuildId(cid) local minimo = 2 local max = 2 local porcentagem = 2 ----------------------------------------- doPlayerSetExperienceRate(cid, 1) if guild_id == 0 then addEvent(doPlayerSendTextMessage, 200,cid, MESSAGE_STATUS_CONSOLE_RED,"[GUILD] Entre em uma guild para ter bonus de experiencia.") return true end if guild_id > 0 then local membros_online = table.maxn(getGuildMembersOnline(guild_id)) local tabela_membros = getGuildMembersOnline(guild_id) --if #getPlayersByIp(getPlayerIp(cid)) >= max then --doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED,"[GUILD] Players com Multi-Cliente nao contam para ganhar o bonus de experiencia.") --return true --end if membros_online <= minimo then addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_RED,"[GUILD] Para ter bonus de experiencia precisa ter mais de "..minimo.." jogadores da guild online.\n Jogadores da Guild Online ["..membros_online.."]") return true end if membros_online > minimo then for var = 1, #tabela_membros do local nomes = getCreatureByName(tabela_membros[var]) local XP = ((membros_online*porcentagem) / 100) + 1.00 doPlayerSetExperienceRate(nomes, XP) addEvent(doPlayerSendTextMessage,1000,nomes, MESSAGE_STATUS_CONSOLE_RED, "[GUILD] A experiencia dos membros da guilda foi aumentada para +"..membros_online*porcentagem.."% - Membro "..getCreatureName(cid).." logou.") end return true end end end "Pasta Servidor > Data > Creaturescripts > Scripts" crie "ExpGuild_out.lua". function getGuildMembersOnline(GuildId) local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerGuildId(pid) == tonumber(GuildId) then table.insert(players, getPlayerName(pid)) end end return #players > 0 and players or false end function onLogout(cid) if getPlayerGuildId(cid) == 0 then return true else local guild_id = getPlayerGuildId(cid) local membros_online = table.maxn(getGuildMembersOnline(guild_id)) local tabela_membros = getGuildMembersOnline(guild_id) local porcentagem = 2 local minimo = 2 ----------------------------------------- for var = 1, #tabela_membros do local nomes = getCreatureByName(tabela_membros[var]) local membros_online = membros_online - 1 if membros_online <= minimo then doPlayerSetExperienceRate(nomes, 1.0) doPlayerSendTextMessage(nomes, MESSAGE_STATUS_CONSOLE_RED,"[GUILD] Nao tem mais o numero de players necessarios para ganhar o bonus de experiencia - Membro "..getCreatureName(cid).." deslogou.") end if membros_online > minimo then local XP = ((membros_online*porcentagem) / 100) + 1.00 doPlayerSetExperienceRate(nomes, XP) doPlayerSendTextMessage(nomes, MESSAGE_STATUS_CONSOLE_RED, "[GUILD] A experiencia dos membros da guilda foi ajustada para "..membros_online*porcentagem.."% - Membro "..getCreatureName(cid).." deslogou.") end end return true end end "Pasta Servidor > Data > Creaturescripts" em creaturescripts.xml adicione: <event type="login" name="ExpGuild" event="script" value="exp_guild.lua"/> <event type="logout" name="ExpGuild_out" event="script" value="exp_guild_out.lua"/> "Pasta Servidor > Data > Creaturescripts > Scripts" em login.lua adicione: Lá em baixo, onde tem registerCreatureEvent ponha esses dois: registerCreatureEvent(cid, "ExpGuild") registerCreatureEvent(cid, "ExpGuild_out") PS: Qualquer erro, postem. É muito importante. Como este é meu segundo script na vida. Pode ser que aconteça de dar erros. Eu testei pouco.
  12. Bom para quem não sabe como funciona o script,é uma marcação que fica no minimap(in-game) que ao deixar o ponteiro do mouse em cima aparece uma descrição,pode ser mudado tanto a descrição quanto o icone que aparece no minimap. • Adicionando o script • Em "data/creaturescripts/creaturescripts.xml" adicione está tag : <event type="think" name="IconMap" event="script" value="iconmap.lua"/> Em "data/creaturescripts/scripts" crie um arquivo lua chamado "iconmap" e cole isso dentro : local config = { storage = 030220122041, version = 1, marks = { {mark = 5, pos = {x = 1095, y = 1062, z = 7}, desc = "Temple."}, {mark = 4, pos = {x = 895, y = 996, z = 7}, desc = "Depot."} } } local f_addMark = doPlayerAddMapMark if(not f_addMark) then f_addMark = doAddMapMark end function onThink(cid, interval) if(isPlayer(cid) ~= TRUE or getPlayerStorageValue(cid, config.storage) == config.version) then return end for _, m in pairs(config.marks) do f_addMark(cid, m.pos, m.mark, m.desc ~= nil and m.desc or "") end setPlayerStorageValue(cid, config.storage, config.version) return TRUE end Em "data/creaturescripts/scripts/login.lua" adicione está tag no fim do script : registerCreatureEvent(cid, "IconMap") Caso use TFS 1.0 use este register no login.lua : player:registerEvent(cid, "IconMap") Creditos : Comedinhas. - ViitinG pelo tutorial. • Configurando • • Icones •
  13. Olá linduxos do TK, hoje trago a vocês um sistema de Anti MB que venho desenvolvendo a alguns dias para solucionar o insuportável, o chato, o irrelevante, o FDM, o tal problema de Account Manager com MB derrubando OT's e ot's. O Script é simples, fácil de adaptação. O Script é feito por storage, ou seja quando o player logar ele recebe uma GLOBAL storage evitando que outro player possa logar, a storage dura X segundos (tempo da storage sair) para outro jogador logar (recomendado 1 ou 2 segundos) Vamos a simples instalação? Em data/creaturescripts/scripts crie um arquivo com o nome de magebombabsolute.lua e insira dentro: storage = 15555 seconds = 2 -- Config -- function onLogin(cid) gone = os.time() if getPlayerAccess(cid) <= 1 then if getGlobalStorageValue(storage)+seconds < gone then setGlobalStorageValue(storage, os.time()) return TRUE else return FALSE end end return TRUE end Em data/creaturescripts.xml adicione a seguinte linha: <event type="login" name="AntiBombAbsolute" event="script" value="magebombabsolute.lua"/> No login.lua abaixo de registerCreatureEvent(cid, "ReportBug"), adicione a seguinte linha: registerCreatureEvent(cid, "AntiBombAbsolute") Onde modificar (caso queira): storage = 15555 (Não mudar, é o número que irá salvar para não logar mais de um character) seconds = 2 (Segundos que poderá logar outro char) Simples e fácil não é? Qualquer dúvida poste aqui no tópico, isto com certeza solucionará o seu problema de Account Manager+MageBot Até o próximo!
  14. Nome do Script: Ganhar Montaria Nome do Autor: Fir3z (eu) Servidor Testado e/ou Versão do Tibia: TFS 0.4 (8.70) Descrição e/ou Informações Adicionais: Ao fazer login vc automaticamente ganhará uma específica montaria. Vi um cara no Suporte querendo um script assim... e apesar de ser bem simples, acho que ainda terá muitas pessoas que vão querer esse script... No arquivo creaturescript.xml adicione está linha: <event type="login" name="Montaria" event="script" value="montaria.lua"/> Crie um arquivo com o nome montaria.lua dentro da pasta scripts e coloque isso dentro: local montaria = IDDAMONTARIA function onLogin(cid) if getPlayerStorageValue(cid, 37561) == -1 then doPlayerAddMount(cid, montaria) setPlayerStorageValue(cid, 37561, 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Por ter feito seu primeiro login no servidor, você acabou de ganhar uma montaria!") end return TRUE end No arquivo login.lua adicione está linha: registerCreatureEvent(cid, "Montaria")
  15. Olá pessoal do TK! Vim aqui hoje trazer 1 script bem básico, mas legal! Quando o character morre Aparece em cima do corpo OwNeD! 1º Abra data\creaturescripts\scripts Agora crie 1 arquivo .LUA chamado: owned Agora cole isso: function onKill(cid, target) if isPlayer(cid) == TRUE and isPlayer(target) == TRUE then doSendAnimatedText(getCreaturePosition(target), "OwNeD!", 35) end return TRUE end 2º Abra creaturescripts.xml e coloque isso: Se for 8.40: <event type="kill" name="owned" script="owned.lua"/> Se for 8.54 para cima <event type="kill" name="owned" event="script" script="owned.lua"/> É isso aí pessoal! Eu não sei muito bem como colocar isso: <event type="statschange" name="magmaboots" event="script" value="magmaboots.lua"/> (As coisas em verde,roxo, azul) Ai fiz do meu jeito! CRÉDITOS: Leonardo ( Criador do Black World 8.40) ATT: R1B31R0 EDIT: Desculpe pelo erro no Título, não sei como mudar. Escrevi errado CreatureScripts, coloquei CreatureScripta. Desculpem!
  16. Vá até data\creaturescripts\scripts e crie um arquivo.lua e renomeie para aolinfinity.lua e cole isto dentro : function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if isPlayer(cid) == true then if (getPlayerSlotItem(cid, 2).itemid == 2131) then >> 2131<< é o ID Do Aol Vcs Editão Ai O ID Do Aol Que Vcs Querem pos = getCreaturePos(cid) doCreatureSetDropLoot(cid, false) doPlayerSetLossPercent(cid, experience, 0) doSendMagicEffect(pos, 49) return TRUE end end return TRUE end Agora Vá Em : DATA/CREATURESCRIPTS/SCRIPTS/ Vá Em Login e Adicione Essa Linha abaixo : registerCreatureEvent(cid, "onPrepareDeathinifi") Agora Vá Em : Creaturescripts.xml : E adicione essa linha abaixo : <event type="preparedeath" name="onPrepareDeathinifi" event="script" value="aolinfinity.lua"/> Prontinho Gente : Rep Testado Com Sussso!!!
  17. Removing houses inactive players Informações: Esse sistema vai ajudar e muito aqueles que sofrem com players inativos, ele basicamente remove a casa do player que estiver inativo por 7 dias(configuravel). Descrição: Remova todos as casas de players inativos, toda vez que ele se executa gera uma linha na prompt. Testado em Versão 8.60, Mysql. Instalação Vá em data/globalevents/scripts e cria um arquivo chamado removehouse.lua, dentro dele coloque. Logo em seguida vá até data/globalevents abra o arquivo globalevents.xml e adicione essa tag. Agora um passo muito importante a ser seguido, você devera criar uma coluna na tabela houses. Então vá no seu Mysql, clique na tabela HOUSES e depois clique em ESTRUTURA. Agora em ESTRUTURA clique em EXECUTAR. Nesse passo preencha as 5 lacunas exatamente como na imagem, depois clique em SALVAR. Pronto instalado com sucesso. Créditos: 100% - Gabisa00 Dúvidas, bugs, sugestões, somente no tópico. Gostou do Sistema Faça Seu Pedido Aqui!
  18. Monstro morre e aparece teleport! TFS 1.0 1º - Vai na pasta creaturescripts e add isso quer está aqui em baixo. 2º - Na pasta creaturescripts vai em scripts copia e colar qual quer arquivo .lua e depois renomeá para tpmonster depois bota isso quer está aqui em baixo no tpmonster.lua Tutorial COR: LIME = Nome do Mostro RED = A onde vai fica o portal Verde = Para onde o players vai 3º - Agora vai na pastar monster procura o bicho quer você vai por e adicionar isso quer está aqui em baixo antes do </monster> da pasta lua do bicho. Só isso qual quer duvida ou report só avisar aqui, espero quer eu acho quer eu ajudei xD Bom Dia a TODOS
  19. Eaii Galerinha, hj estou aqui trazendo mais um script feito por um amigo de outro forum o Printer Bom o script vai da clean em um certa área que vc configurar globalevent/globalevent.xml <globalevent name="cleanarea" interval="1200" event="script" value="cleanarea.lua"/> globalevent/scripts/cleanarea local created_by_otswe = true -- Do not edit, if you touch this line the script will not work propely local otswe = { Clean_Time = 20, -- When the warning text has been broadcast, for how many seconds should it take to execute the clean Warning_Text_Before_Clean = "A area will be cleaned in 20 seconds, so pick up your trash or see it vanish", -- Here can you edit the warning text Done_Text = "Next area clean will be excuted in 20min" -- Here you can edit the done text } local OtsweCleaningAreaPositions = { from = {x=994,y=1008,z=7}, -- From top left -- Top left of the cleaning area to = {x=999,y=1012,z=7} -- to bottom right -- Bottom left of the cleaning area } function isCleanAbleArea(pos) pos.stackpos = 0 local tile = getThingfromPos(pos, false) if tile ~= 0 and not hasProperty(tile.uid, CONST_PROP_BLOCKSOLID) and not isCreature(getTopCreature(pos).uid) then return true end end function executeOtsweAreaClean() doBroadcastMessage(otswe.Done_Text) for x = OtsweCleaningAreaPositions.from.x, OtsweCleaningAreaPositions.to.x do for y = OtsweCleaningAreaPositions.from.y, OtsweCleaningAreaPositions.to.y do local p = {x=x,y=y,z=OtsweCleaningAreaPositions.from.z} if isCleanAbleArea(p) or created_by_otswe == true then doCleanTile(p,false) end end end end function onThink(cid, interval, lastExecution) addEvent(executeOtsweAreaClean, otswe.Clean_Time*1000) doBroadcastMessage(otswe.Warning_Text_Before_Clean) return true end Printer 100% Script AndreyLost 100% Topico
  20. Headshot - Critical hit Quando alguém te ataca, há a chance de ela te bater na cabeça(headshot) e você tomar 250%(configurável) do dano que ela causaria normalmente. Então, vamos lá. Adicione isso ao seu creaturescripts.xml <event type="login" name="HeadshotLogin" event="script" value="headshot.lua"/> <event type="statschange" name="HeadshotCritical" event="script" value="headshot.lua"/> E crie este arquivo: data/creaturescripts/scripts/headshot.lua local chance_percent = 50 -- Chance percenting local extra_damage_percent = 250 -- Extra Damage Percent function onLogin(cid) registerCreatureEvent(cid, "HeadshotCritical") return true end function onStatsChange(cid, attacker, type, combat, value) if type ~= STATSCHANGE_HEALTHLOSS then return true end if isPlayer(attacker) and getPlayerStorageValue(cid, 71257) < 1 then if math.random(100) <= chance_percent then local dmg = value * (extra_damage_percent / 100) setPlayerStorageValue(cid, 71257, 1) doTargetCombatHealth(attacker, cid, type, -dmg, -dmg, 255) setPlayerStorageValue(cid, 71257, -1) doCreatureSay(cid, "CRITICAL", 19) return false end end return true end
  21. Sabe no wodbo quando você transforma o char ae fica uns raios em volta dele? Então...esse script faz aparecer os raios. Vamos ao script: Vá em data/globalevents/scripts/ E crie um arquivo lua como o nome que desejar...dentro dele adicione isso: Depois vá em data/globalevents/globalevents.xml E adicione a seguinte tag: Explicando cada parte: Onde tem: if(getPlayerVocation(pid) == 6) then Coloque a vocação que você quer o efeito. Onde tem: doSendMagicEffect(playerpos, 5) Coloque o efeito(ItemType) que você desejar. É isso...Até! Ajudei? REP + Não vai cair a mão!!
  22. Salve Galera Do Tk, Sei Que Errei Fis Muinta merda Mais eu já aprendi as regras porem peço desculpas a todos, Lowlevellock é Bom Para ots war quando vc morre volta pro level que você editou Vou Ensina-los a Fazer Isso numero 1 - Se Seu ot é war Vá Em Data/CreatureScripts/Scripts/Lowlevellock. Caso Vc Não Tem Faça o Seguinte Abra-o O Bloco de Notas e coloque isso Salve Como lowlevellock.lua no numero Vermelho lá é o level quizer colocar agora após fazer isso Vá Em Creaturescripts E Anote Isso Se o seu ot Estiver On Digite /reload Creaturescripts e ja era nao precisa fechar Bom Aproveito Tibiano.
  23. Team vs team Esse script vem com 3 times verde,vermelho e azul creaturescripts > Scripts XML login.lua Config.lua Creditos : Morrison
  24. Eai turma tudo beleza? sou novato na area de script mais esse eu consegui resolver e testei no TFS 1.0 10.37, acredito que alguém esteja precisando pois ele estava dando alguns erros no console e o tp nao aparecia apos a morte do boss, então ai vai: O script funciona da seguinte maneira - Você mata o boss da inq e o tp aparece levando para a proxima sala segue o script: local config = { timeToRemove = 160, message = "You now have 2 minutes to exit this room through the teleporter. It will bring you to the next room only during his time or the teleporter will disappear", teleportId = 9773, bosses = { ["Ushuriel"] = { pos={ x=33157, y=31725, z=11, stackpos=1 }, aid=1001 }, ["Zugurosh"] = { pos={ x=33123, y=31689, z=11, stackpos=1 }, aid=1002}, ["Madareth"] = { pos={ x=33194, y=31768, z=11, stackpos=1 }, aid=1003}, ["Annihilon"] = { pos={ x=33200, y=31704, z=11, stackpos=1 }, aid=1005}, ["Hellgorak"] = { pos={ x=33107, y=31735, z=11, stackpos=1 }, aid=1006} }, brothers ={ ["Golgordan"] = {pos={ x=33235, y=31734, z=11, stackpos=1 },aid=1004, brother = "Latrivan"}, ["Latrivan"] = {pos={ x=33235, y=31734, z=11, stackpos=1 },aid=1004, brother = "Golgordan"}, brothersArea ={ fromPos = {x = 33224, y = 31722, z = 11}, toPos = {x = 33240, y = 31734, z = 11} } } } local function removal(position) doRemoveItem(getTileItemById(position, config.teleportId).uid, 1) return TRUE end function onKill(cid, target, lastHit) if(config.bosses[getCreatureName(target)]) then local t = config.bosses[getCreatureName(target)] local teleport = doCreateItem(config.teleportId, t.pos) local position = t.pos doSetItemActionId(teleport, t.aid) doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) addEvent(removal, config.timeToRemove * 1000, position) elseif(config.brothers[getCreatureName(target)]) then local t = config.brothers[getCreatureName(target)] local brother = getCreatureByName(t.brother) if(isMonster(brother) == true) then if(isInRange(getCreaturePosition(brother), config.brothers.brothersArea.fromPos, config.brothers.brothersArea.toPos) == true) then return TRUE end else local teleport = doCreateItem(config.teleportId, t.pos) local position = t.pos doSetItemActionId(teleport, t.aid) doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) addEvent(removal, config.timeToRemove * 1000, position) end end return TRUE end Faça a copia de algum arquivo.lua da pasta creaturescript e cole isso dentro salve/feche renomeie para Inquisition. em creaturescript.xml adicione: <event type="kill" name="inquisitionPortals" script="Inquisition.lua"/> Adicione também em cada um dos bosses da inq a seguinte tag <script> <event name="inquisitionPortals"/> </script> Favor adicionar os possíveis créditos caso houver! Agradeço
  25. Boa Noite Galera Acabei de Termia esse script e venho postar para vcs, no global quando se da look em um player é mostrado qtos player tem na Guild dele e qtos online! &nbsp; Vamos aos .xml &nbsp; Creaturescripts/ <event type="look" name="RepLook" event="script" value="relook.lua"/> em Login.lua if isPlayer(cid) then local guild = getPlayerGuildId(cid) playerid = getPlayerGUID(cid) if getPlayerGuildId(cid) ~= 0 then db.query("UPDATE `players` SET `guild_id` = "..guild.." WHERE `players`.`id` = "..playerid..";") else db.query("UPDATE `players` SET `guild_id` = 0 WHERE `players`.`id` = "..playerid..";") end end registerCreatureEvent(cid, "RepLook") Na DataBase Adc esse SQL: ALTER TABLE `players` ADD `guild_id` int(11) NOT NULL DEFAULT '0'; em&nbsp;relook.lua function onLook(cid, thing, position, lookDistance) local tabela = {} if isPlayer(thing.uid) then if getPlayerGuildId(thing.uid) ~= 0 then playerid = getPlayerGUID(thing.uid) query2 = db.getResult("SELECT Count( guild_id ) FROM `players` WHERE `players`.`guild_id` = "..getPlayerGuildId(thing.uid)..";") query3 = db.getResult("SELECT Count( online ) FROM `players` WHERE `players`.`online` = 1 AND `players`.`guild_id` = "..getPlayerGuildId(thing.uid)..";") table.insert(tabela, "\nExiste "..query2:getDataInt("Count( guild_id )").." Player na Guild.\n"..query3:getDataInt("Count( online )").." Players Online") end local concatena = table.concat(tabela) doPlayerSetSpecialDescription(thing.uid, concatena) end return true end Qualquer Bugs Avise Para os TFS que usa db.executeQuery mude os db.query para db.executeQuery

Informação Importante

Confirmação de Termo