Ir para conteúdo
Banner com Efeitos

Godfather

Membro
  • Registro em

  • Última visita

Tudo que Godfather postou

  1. @xWhiteWolf, olá, obrigado pela resposta Sobre essa parada de defesa, ela só funciona contra o ataque físico dos bichos (o dano "elemental" não é descontado na armadura, só no absorbPercentElement). Pensando nisso, criei um monstro com dano físico fixo de 100. Com o amuleto protegendo 40%, o dano era fixo de 60 (sem defesa alguma). Adicionei um demon helmet. Dano médio: 55. Adicionei um demon shield. Dano médio: 48. Adicionei uma demon armor. Dano médio: 40. Adicionei uma demon legs. Dano médio: 30. Dá pra concluir que sua primeira teoria não é aplicada realmente, pois o dano não ficou extremamente baixo (considerando que era apenas 100 de dano e era um demon set) Portanto, acho que não há problema nessa parte. Sobre as linhas de texto: removi a doPlayerSendTextMessage e pus a linha do doPlayerSendCancel abaixo da linha do doTargetCombatHealth para que a mensagem seja exibida ao invés da mensagem padrão do tfs Sobre o doAreaCombatHealth: ("o correto seria"?!?! Mas a minha linha já funciona o_O). O parâmetro não precisa de uma área em array, dá pra usar 0 para que fique somente em um SQM, ou 1 para que fique um círculo de 9, e assim por diante Além disso, o -1 significa que efeito nenhum será mostrado, deixando apenas o efeito do melee ou das magias que já seriam mostrados normalmente, pra ficar algo natural e não um efeito aparecendo toda hora que você perde 1 de hp. (E funciona) (/\ tudo baseado no tfs 0.4) --- // --- De qualquer forma, modifiquei um pouco o script, acho que ficou melhor (aceito que ponham do pastebin pra cá com identação, pois não sei como hehe)
  2. AMULETO WHOHOOO É um amuleto que, quando está equipado, nega x% do dano provido de monstros. (data/creaturescripts/scripts/amulet.lua) http://pastebin.com/w5wzaXyL(revisão - recomendado) http://pastebin.com/LW3Z34v9 (versão inicial) (data/creaturescripts/scripts/login.lua) Adicione esta linha: registerCreatureEvent(cid, "Amulet") (data/creaturescripts/creaturescripts.xml) Adicione esta linha: <event type="statschange" name="Amulet" event="script" value="amulet.lua"/> E pronto! No script a variável "porcentagem" possui o valor 40 como padrão, que é a porcentagem do dano que será BLOQUEADA. Ou seja, receberá ainda 60% do dano Na variável pt_br = false, troque false por true para que a mensagem seja exibida em português obs. o ID do amuleto é o 2218
  3. Godfather postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    [Criado em TFS 0.4 (tibia 8.6), talvez não funcione em outras versões - não darei suporte] Eaí! Este mod consiste em dizer !aura para ver uma lista de auras compráveis, que, após compradas, podem ser escolhidas por "!aura nomedaaura" para que saia um efeito no jogador a cada 1 segundo. [mods/Aura.xml]: http://pastebin.com/qVayLc3m ss's e como usar: Como adicionar outros efeitos? Na 4ª linha, nesta parte: auras = { ["fogo"] = {36,1500000,11350}, ["gelo"] = {41,1500000,11351}, ["pedras"] = {44,1250000,11352}, ["energia"] = {37,1250000,11353}, ["tornado"] = {42,15000000,11354}, } Continue seguindo o padrão, que é: ["Nome"] = {Efeito, Preço, Storage}, Sendo que Storage não pode repetir, então sempre ponha um número a mais que o anterior. É isso Vlw
  4. O script é simples: você normalmente começa com a wand of vortex nos servidores. Daí, quando pega nível suficiente pra usar a próxima wand (wand of dragonbreath), ganha ela automaticamente. Assim por diante até a wand of voodoo. Funciona em druids tbm. [data/creaturescripts/scripts/evoluirwand.lua] http://pastebin.com/rHBqt3Sd (ou clique em Spoiler para ver o script aqui) [data/creaturescripts/creaturescripts.xml] Adicione a seguinte linha: <event type="advance" name="EvoluirStaff" event="script" value="evoluirwand.lua"/> [data/creaturescripts/scripts/login.lua] Adicione a seguinte linha após onLogin(cid): registerCreatureEvent(cid, "EvoluirStaff")
  5. O meu também não dá respawn, assim como o de outro cara que fez um tópico recentemente. Será que alguém poderia ajudar? Esta função é meio vital pro que eu estou fazendo...
  6. Eaí. Estava criando um sistema de pet por channels, daí senti que seria legal fazer com que tivesse uma barrinha de experiência Ficará tipo assim: (40 quadradinhos) O legal é que dá pra você modificar a largura da barrinha, mas manter os mesmos valores, como na foto: (60 quadradinhos) Daí você pode modificar os valores, como por exemplo, 7 de 10 em 20 quadradinhos: A função é a seguinte: function getStringBar(Vr,Vm,quant) local retorno = {barra,min=Vr,max=Vm,porcentagem=math.floor((Vr/Vm)*100)} local Q = quant/Vm Vr = Vr*Q Vm = Vm*Q str = "[" local trigger = false for i = 1, Vm do if i <= Vr then str = str .. "=" else if not trigger then str = str .. "|" trigger = true end str = str .. "-" end end retorno.barra = str.."]" return retorno end Ela retornará o seguinte array: retorno = { barra (que será a barrinha inteira, tipo [=====|----------] min (que é o valor usado, como o 7 da terceira foto) max (o valor máximo usado, como o 10 da terceira foto) porcentagem (que é a porcentagem do 7 para o 10, no caso 70%) } Exemplo de uso: local gsb = getStringBar(10,20,50) doPlayerSendTextMessage(cid, "4", gsb.min.." "..gsb.barra.." "..gsb.max.." ("..gsb.porcentagem.."%)") Que dará o seguinte resultado: Daí vai de sua imaginação! Esclarecendo: > getStringBar(valor,valor máximo,quantidade de quadradinhos) Esta função não é muito simples de se usar, mas quis deixar retornando o array mesmo, até pra aumentar as possibilidades de uso. Talvez ela seja uma função daquelas que você usa uma vez a cada vinte códigos, mas sempre é bom deixá-la por perto. Valeu!
  7. Opa, se já tinha foi mal. De qualquer forma, este daí fui eu quem fiz e, pelo que parece, pode ser implantado mais facilmente... @Dennyz use o script do fireelement que funcionará, o outro esqueceu de por em string
  8. Oi. Esse script vai fazer com que sua MW mostre os segundos que faltam para que ela desapareça. Só. Abra o script da magic wall (data/spells/script/support/magic wall rune.lua) Troque tudo que estiver lá dentro por: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) function countPos(pos,tempo) if tempo > 0 then doSendAnimatedText(pos,tempo,TEXTCOLOR_RED) addEvent(countPos,1000,pos,tempo-1) else doSendMagicEffect(pos,2) end end function onCastSpell(cid, var) countPos(var.pos,20) return doCombat(cid, combat, var) end E a MW está pronta! Agora vamos querer mudar a Wild Growth também, correto? Abra o script da wild growth (data/spells/script/support/wild growth rune.lua) local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499) function countPos(pos,tempo) if tempo > 0 then doSendAnimatedText(pos,tempo,TEXTCOLOR_RED) addEvent(countPos,1000,pos,tempo-1) else doSendMagicEffect(pos,2) end end function onCastSpell(cid, var) countPos(var.pos,45) return doCombat(cid, combat, var) end Tudo pronto, agora é só relaxar e gozar!!!
  9. Oi. Eu fiz esse NPC para que ele possa deixar mensagens em um bloco de notas para que os administradores vejam. É uma forma de comunicação com os jogadores. [data/npc/Mensageira.xml] <npc name="Mensageira" script="data/npc/scripts/messenger.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="347" head="20" body="100" legs="50" feet="99" corpse="2212"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu tenho a função de deixar mensagens para que o administrador possa ler mais tarde, como críticas, ou simplesmente um bom dia. Gostaria de deixar uma {mensagem}?"/> </parameters> </npc> [data/npc/scripts/messenger.lua] local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local moneyTo = {} local playerTo = {} 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 if talkState[cid] == 1 then selfSay("A mensagem \""..msg.."\" foi deixada. Obrigado pela contribuicao! Sua mensagem sera revisada por um administrador.", cid) local texto = "" local read = io.open("mensagens.txt", "r") texto = read:read("*all") read:close() local write = io.open("mensagens.txt", "w") write:write(texto.."["..getPlayerName(cid)..", "..os.date("%c").."]: \""..msg.."\"\n") write:close() talkState[cid] = 0 elseif msgcontains(msg, 'mensagem') then selfSay("Escreva a mensagem que voce gostaria de deixar. Pede-se rever o texto e escrever claramente o que deseja. Spam causa banimento por IP.", cid) talkState[cid] = 1 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Aí você deixa ele no templo, sei lá, faz qualquer coisa Só pra avisar, o mensagens.txt fica na pasta raiz do servidor, lá onde tem config.lua
  10. se o player relogar em menos de 1 segundo cai 2x mais rapido e se ele der logout vai ficar dando bug '-'
  11. Verdade, a tag está errada, arrumado, obrigado. Sim, sou o 20cm Aliás perdão também por não dar atenção ao tópico, tava vendo o meu canal do youtube e vi o vídeo que tinha o link, enfim... Pra configurar deve ser meio chato mesmo, apesar de que tentei por as cores e tal... Obrigado por orientá-los Kimoszin enquanto eu não estava \o
  12. Se esse script for do globalwar, que merda hein '-'
  13. se eu falar !comando 17 (que nao tá na table) vai dar erro no console dizendo q n existe o valor na table pra checar isso vc poe um if: if a ~= nil then fora isso bom script
  14. Legal cara, mas dava pra fazer seu script muito mais configurável pra quem vai usar: Aí só precisa adicionar o lugar na table: ["nomedolugar"] = {x=posx, y=posy, z=posz}, O seu está legal mas se eu adicionasse 50 lugares cada um ocuparia 4 linhas, ocupando 200 linhas Aí, cara lugar ocupa uma linha, 1/4 do que seria...
  15. É só não por uma placa dizendo: DA USE NO BAGUI AI PRA ABRIR A PASSAGEM FERA xD Só dei a base, agora usem a imaginação
  16. Por que você não posta o erro e o seu script aqui pra nós resolvermos isso?
  17. Versão testada: 8.60 TFS testado: 0.4 Vídeo Demonstrativo Script Configurando Vermelho: PosiÇão da estante esquerda Verde: PosiÇão da estante direita Rosa: ID do item que a parede esquerda vai se transformar (na foto: 1207) Azul-claro: ID do item que a parede direita vai se transformar (na foto: 1208) Amarelo: ID da parede da foto (parede amarela - na foto 1026) Azul: ID da parede da foto (parade azul - na foto 1026) Verde-bosta: Tempo em segundos que a passagem fica aberta. LEMBRANDO QUE O ID NãO É EDITáVEL, É A BOOKCASE E PRONTO! PS²: LEMBRE-SE DE QUE A BOOKCASE NãO É UM ID, ELA É 1718 NA ESQUERDA E 1719 NA DIREITA Lembrando que caso você não tenha gostado ou caso você queira alguma mudança, reclame com Deus.
  18. Espero que tenha conseguido , vc nao me avisou mais .-.
  19. -- script by Eitor Laba -- bot cleaner v1.0 local c = {x=0,y=0,z=0} function onUse(cid, item, frompos, item2, topos) function newEffect() local lock = 0 local timeto = 30 local random = math.random(1,4) local effects = {47} local delay = 0.8 local msgs = {"Oops!","Bloqueado","Epa!"} if random == 1 then c.x = c.x + 1 elseif random == 2 then c.x = c.x - 1 elseif random == 3 then c.y = c.y + 1 elseif random == 4 then c.y = c.y - 1 end if math.random(1,8) == 5 then local saudacoes = {"Tudo bom?","Limpando!","Olá!","","Passando!"} doSendAnimatedText(c,saudacoes[math.random(0,#saudacoes)],160) end if lock < 1 then if getThingFromPos(c).itemid > 0 then if isItemMovable(getThingFromPos(c).itemid) then c.stackpos = 253 if not isCreature(getThingFromPos(c).uid) then doSendAnimatedText(c,"Limpo!",TEXTCOLOR_YELLOW) doCleanTile(c) c.stackpos = 1 else doSendAnimatedText(c,"Licença!",160) c.stackpos = 1 end else if random == 1 then c.x = c.x - 1 elseif random == 2 then c.x = c.x + 1 elseif random == 3 then c.y = c.y - 1 elseif random == 4 then c.y = c.y + 1 end doSendAnimatedText(c,msgs[math.random(0,#msgs)],TEXTCOLOR_YELLOW) doSendMagicEffect(c,effects[math.random(1,#effects)]) addEvent(newEffect,delay * 1000) end end else doSendAnimatedText(c,"Acabou o tempo.",TEXTCOLOR_YELLOW) end end function finish() lock = 1 end addEvent(finish,timeto * 1000) c = getPlayerPosition(cid) c.stackpos = 1 newEffect() return TRUE end[/code] [b]Tente isso, eu não testei pois estou indo dormir Se não funcionar eu arrumo mais tarde e te mando Abraços[/b]
  20. Cara, esse script é bastante simples, e eu também desenvolvi um Chest Generator (http://www.mediafire...adsmn2q1bev2y70), que facilita a criação de quests. Mas de qualquer forma, você está começando, então parabéns Mas tente criar coisas mais complexas, não se limite em pequenos scripts por ser um scripter iniciante. REP+
  21. Poisé, não dá mais pra mim também kk Amanhã talvez, abraços.

Informação Importante

Confirmação de Termo